我试图在使用GUI的Java中创建我的第一个程序,并且出现小问题。我使用NetBeans创建了一个窗口,现在我创建了两个类 - 一个叫做GUI,它将控制我的窗口,当然还有Main。在Java中使用GUI执行程序期间出现NullPointerException
这里有两个代码:
GUI:
package client;
import resources.gui.*;
public class GUI {
public Window window;
public GUI(){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
window=new Window();
window.setVisible(true);
}
});
}
public void Show(){
window.jTextArea1.setText("Test");
}
}
主营:
package client;
public class Main {
static GUI gui;
public static void main(String[] args) {
gui=new GUI();
gui.Show();
}
}
当然还有是一个扩展JFrame的另一个名为窗口。
我的问题是,在执行它的时候,有一行java.lang.NullPointerException试图修改jTextArea1。我想这是因为当程序试图使用这个函数时,没有Window类 - 它还没有被创建“,这要归功于”invokeLater“。
如果我是正确的,我该如何修复它?没有办法将该函数放入run()中,因为在最终版本中它不会是一个函数 - 它将是Thread独立于GUI的类,它将在Main中创建和执行...或者至少我希望它就是这样。 :)
你在哪里创建JTextArea1?如果你不创造它,你期望它存在吗?它是空的,因此你得到NullPointerException(因为程序试图调用null对象上的setText方法)。 –