【发布时间】:2016-06-25 00:00:22
【问题描述】:
我有一个我可能看不到的问题。
主题:我有我的类Main,其中包含窗口,我有一个类MainController,我将我的所有函数放在类Main。
类Main:
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("/application/Main.fxml"));
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
// primaryStage.setFullScreen(true);
primaryStage.show();
MainController m = new MainController();
m.testFunction();
}
}
班级MainController:
public class MainController {
@FXML private Label answer1;
@FXML private Label answer2;
public void testFunction()
{
answer1.setText("FIRST");
answer2.setText("SECOND");
}
}
在Main.start 中调用testFunction 时会出现此错误:
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at application.MainController.testFunction(MainController.java:43)
at application.Main.start(Main.java:20)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(Unknown Source)
... 1 more
我尝试调试两天没有成功。
感谢你们的帮助!
【问题讨论】:
-
MainController类的第 43 行是哪一行? -
可能控制器的元素还没有初始化,你得到 NullPointer Exception 。检查 Merve Sahin 的答案。
标签: java javafx nullpointerexception runtimeexception