0

尝试设置它,以便如果满足某个条件,则将选中两个复选框之一。但是我不断收到 nullpointerexception 错误。

代码是..

        //Set the flat rate or hourly billing check boxes.
    if(flatRateint > 0) {
        InvoiceUI.jCheckBox1.setSelected(true);
    }
    else {
        InvoiceUI.jCheckBox2.setSelected(true);
    }

错误是

my.freelancebillingapp.InvoiceSelectionUI.jButton1MouseClicked(InvoiceSelectionUI.java:224) 处 my.freelancebillingapp.InvoiceSelectionUI.access$100(InvoiceSelectionUI.java:17) 处的线程“AWT-EventQueue-0”java.lang.NullPointerException 异常.InvoiceSelectionUI$2.mouseClicked(InvoiceSelectionUI.java:86) 在 java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253) 在 java.awt.Component.processMouseEvent(Component.java:6266) 在 javax.swing.JComponent.processMouseEvent (JComponent.java:3267) 在 java.awt.Component.processEvent(Component.java:6028) 在 java.awt.Container.processEvent(Container.java:2041) 在 java.awt.Component.dispatchEventImpl(Component.java: 4630) 在 java.awt.Container。dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java :4247) 在 java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) 在 java.awt.Container.dispatchEventImpl(Container.java:2085) 在 java.awt.Window.dispatchEventImpl(Window.java:2475) 在 java .awt.Component.dispatchEvent(Component.java:4460) 在 java.awt.EventDispatchEvent(EventQueue.java:599) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 在 java.awt.EventDispatchThread。 java.awt.EventDispatchThread 中的 pumpEventsForFilter(EventDispatchThread.java:184)。pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java :122)

4

3 回答 3

1

假设您的示例中包含 InvoiceSelectionUI.java 的第 224 行,则以下其中一项必须为空:

  • InvoiceUI
  • InvoiceUI.jCheckBox1
  • InvoiceUI.jCheckBox2
  • flatRateint(如果它是一个Integer,但不是如果它是一个int
于 2009-10-31T01:17:51.543 回答
0

我认为 jcheckBox[12] 是您未初始化的 InvoiceUI 的静态字段。

于 2009-10-31T01:15:52.723 回答
0

我的第一直觉是这flatRateint可能是空的,但从名字上我猜它是一个原始的int,这会排除这种情况。您的错误消息是关于鼠标点击的;所以我怀疑你的onclick()方法中有代码。我不是专家,但我发现错误经常出现在实际错误打印输出中提到的位置之前的两三行。也许像

if(someObj.someMethod() == foo)
    flatRateint = 5;
else
    flatRateint = 8;

并且someObj从未初始化?

于 2009-10-31T01:25:30.660 回答