NullPointerException ao tentar definir um JCheckBox
-
22-07-2019 - |
Pergunta
Tentar defini-lo por isso, se uma determinada condição for satisfeita, uma das duas caixas de seleção serão verificadas. No entanto, eu continuo recebendo um erro de NullPointerException.
O código é ..
//Set the flat rate or hourly billing check boxes.
if(flatRateint > 0) {
InvoiceUI.jCheckBox1.setSelected(true);
}
else {
InvoiceUI.jCheckBox2.setSelected(true);
}
O erro é
Exception in thread "AWT-EventQueue-0" Java.lang.NullPointerException em my.freelancebillingapp.InvoiceSelectionUI.jButton1MouseClicked (InvoiceSelectionUI.java:224) em my.freelancebillingapp.InvoiceSelectionUI.access $ 100 (InvoiceSelectionUI.java:17) em my.freelancebillingapp.InvoiceSelectionUI $ 2.mouseClicked (InvoiceSelectionUI.java:86) em java.awt.AWTEventMulticaster.mouseClicked (AWTEventMulticaster.java:253) em java.awt.Component.processMouseEvent (Component.java:6266) em javax.swing.JComponent.processMouseEvent (JComponent.java:3267) em java.awt.Component.processEvent (Component.java:6028) em java.awt.Container.processEvent (Container.java:2041) em java.awt.Component.dispatchEventImpl (Component.java:4630) em java.awt.Container.dispatchEventImpl (Container.java:2099) em java.awt.Component.dispatchEvent (Component.java:4460) em java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:4574) em java.awt.LightweightDispatcher.processMouseEvent (Container.java:4247) em java.awt.LightweightDispatcher.dispatchEvent (Container.java:4168) em java.awt.Container.dispatchEventImpl (Container.java:2085) em java.awt.Window.dispatchEventImpl (Window.java:2475) em java.awt.Component.dispatchEvent (Component.java:4460) em java.awt.EventQueue.dispatchEvent (EventQueue.java:599) em java.awt.EventDispatchThread.pumpOneEventForFilters (EventDispatchThread.java:269) em java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread.java:184) em java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:174) em java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:169) em java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:161) em java.awt.EventDispatchThread.run (EventDispatchThread.java:122)
Solução
Assumindo linha 224 da InvoiceSelectionUI.java está incluído na sua amostra, uma das seguintes opções deve ser nulo:
-
InvoiceUI
-
InvoiceUI.jCheckBox1
-
InvoiceUI.jCheckBox2
-
flatRateint
(se é umInteger
, mas não se é umint
)
Outras dicas
Eu acho JCheckBox [12] são campos estáticos da InvoiceUI você não inicializou.
Meu primeiro instinto é que flatRateint
pode ser nulo, mas a partir do nome que eu estou supondo que é um int
primitiva, o que descartar essa possibilidade. Sua mensagem de erro é de cerca de cliques do mouse; então eu suspeito código em seu método onclick()
. Eu não sou nenhum guru, mas eu acho que os erros geralmente ocorrem duas ou três linhas antes do local mencionado na impressão de erro real. Talvez algo como
if(someObj.someMethod() == foo)
flatRateint = 5;
else
flatRateint = 8;
e someObj
nunca foi inicializado?