Fórum CheckBox render #412357

03/02/2012

0

Ola bom dia
Estou criando um cadastro de usuarios para definir permissoes, por exemplo:
eu seleciono o usuario e depois seleciono o programa para qual quero editar as permissoes
cada programa tem um numero variado de permissoes diversas, ae gostaria de criar um check box para cada campo, para depois pegar as alteracoes
	private void AddCheckBox(JPanel panel, String programa) {
		String S075 =  acesso.Read(SGVAR075, programa); // leio o registro do cadastro do programa 
		listaChecks.setCellRenderer(new CheckBoxCellRender());//Defino o render q vou usar
		int Linha = 0;
		int totalPermissao = acesso.Dcount(S075, REGG.SGVAR075.S75$PRIVILEGIOS, MVConstants.VAL_MARK); // aki recebo o total de permissoes q tenho para este programa
		Object[] cbArray = new Object[totalPermissao];
		String S122;
		for(int permisa = 1;permisa < totalPermissao ;permisa++){
			S122 = acesso.Read(SGVAR122, acesso.Extrair(S075, REGG.SGVAR075.S75$PRIVILEGIOS,permisa));
			cbArray[permisa] = new JCheckBox(acesso.Extrair(S122, REGG.SGVAR122.S122$DESCRICAO));
			Linha = Linha+28;
			((JCheckBox) cbArray[permisa]).setBounds(0, Linha, 97, 23);
			
		}
		
		listaChecks.setListData(cbArray);
		listaChecks.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		panel.add(listaChecks);


ae crei um butao q pega o valor da textfield com seguinte evento

		panelPermissao = new JPanel();
		panelPermissao.setBounds(426, 175, 200, 275);
		getContentPane().add(panelPermissao);
		panelPermissao.setLayout(null);

		JButton btnAlterar = new JButton(**);
		btnAlterar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				AddCheckBox(panelPermissao,tFProgramas.getText());
				panelPermissao.setBorder(new LineBorder(new Color(0, 0, 0)));
				panelPermissao.validate();
				panelPermissao.repaint();
				
			}
		});


e o meu cellrender é este
public class CheckBoxCellRender implements ListCellRenderer {
	
	Border noFocusBorder = new EmptyBorder(1,1,1,1);
	/* (non-Javadoc)
	 * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean)
	 */
	@Override
	public Component getListCellRendererComponent(JList list, Object value,
			int index, boolean isSelected, boolean cellHasFocus) {
		JCheckBox checkBox = (JCheckBox) value;
		checkBox.setBackground(isSelected?list.getSelectionBackground() : list.getBackground());
		checkBox.setForeground(isSelected?list.getSelectionForeground():list.getForeground());
		checkBox.setEnabled(list.isEnabled());
		checkBox.setFont(list.getFont());
		checkBox.setFocusPainted(false);
		checkBox.setBorderPainted(true);
		checkBox.setBorder(isSelected?UIManager.getBorder(List.focusCellHighlightBorder): noFocusBorder);
		return checkBox;
	}


quando clico no botao ele me traz isso na console

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException
at SGV.SGVPR001.AddCheckBox(SGVPR001.java:390) listaChecks.setCellRenderer(new CheckBoxCellRender());
at SGV.SGVPR001.access$5(SGVPR001.java:386) private void AddCheckBox(JPanel panel,String programa) {
at SGV.SGVPR001$6.actionPerformed(SGVPR001.java:364) AddCheckBox(panelPermissao,tFProgramas.getText());
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Alberto Leal

Alberto Leal

Responder

Posts

20/02/2012

Dyego Carmo

Chegou a ver se listaChecks é null ?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar