CheckBox render
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
ae crei um butao q pega o valor da textfield com seguinte evento
e o meu cellrender é este
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)
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
Curtidas 0
Respostas
Dyego Carmo
03/02/2012
Chegou a ver se listaChecks é null ?
GOSTEI 0