2012-01-19 35 views
1

我想从我的程序启动大型机,从RPSearchToolView.class焦点jComboBox2。但NullPointerException已返回到我的控制台。有人可以帮我弄清楚我的代码有什么问题。我把requestFocus放在main里面,如下所示。NullPointerExeption为JComboBox.requestFocus

/** 
* Main method launching the application. 
*/ 
public static void main(String[] args) { 
    launch(RPSearchToolApp.class, args);     
    RPSearchToolView.jComboBox2.requestFocus(true);   
} 

输出:

run: 
Exception in thread "main" java.lang.NullPointerException 
    at rpsearchtool.RPSearchToolApp.main(RPSearchToolApp.java:222) 

请帮我对此。

+1

您不能提供足够的信息或足够的代码给任何人提供有用的帮助。现在我们可以告诉你的最好方法是在类rpsearchtool.RPSearchToolApp的第222行中,在你的main方法中,你使用的一个对象是null。 –

+1

@ user1157559:此外,而不是使用RPSearchToolView.jComboBox2.requestFocus(true);您应该使用RPSearchToolView.jComboBox2.requestFocusInWindow();.这是更好的方法。 Regards –

+0

@blackpanda我意识到,在启动方法后立即访问jComboBox肯定会抛出nullpointerexception,因为在应用程序中的所有组件需要一段时间才能初始化/实现。无论如何非常感谢你的帮助。 – dmfrl

回答

3

您是否检查过jComboBox2是否为空?如果你不使用调试器(我强烈推荐),然后在'launch'后测试“(jComboBox2 == null)”。

在组件实现之前请求焦点也可能导致空指针异常;我没有尝试过。但是,在实现非法之前,请求关注并不意外。你可以通过在他们所在的框架上显示组件或调用pack()来实现。

+0

_谢谢,它的工作原理。我试图在启动方法之后放置Thread.sleep(1000),因为所有组件都已经实现,现在可以调用jComboBox。非常感谢你。_ – dmfrl

相关问题