我試圖在使用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方法)。 –