我在应用程序中添加启动画面时遇到问题。下面的代码是在Start.java中的程序开头运行启动画面。
@Override
public void start(Stage stage) throws Exception {
Parent root=FXMLLoader.load(getClass().getResource("WelcomeScreen.fxml"));
Scene scene=new Scene(root);
stage.initStyle(StageStyle.UNDECORATED);
stage.setScene(scene);
stage.show();
}
下面的代码位于Welcomescreen.java中,它将设置一个计时器并加载主fxml文件。
class Screen extends Thread{
@Override
public void run() {
try {
Thread.sleep(1000);
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
Parent root=FXMLLoader.load(getClass().getResource("MainPage.fxml"));
Scene scene=new Scene(root);
Stage stage=new Stage();
stage.setScene(scene);
stage.show();
}
catch(IOException ex) {
Logger.getLogger(WelcomeScreen.class.getName()).log(Level.SEVERE,null,ex);
}
rootPane.getScene().getWindow().hide();
}
});
}catch(InterruptedException ex) {
Logger.getLogger(WelcomeScreen.class.getName()).log(Level.SEVERE,null,ex);
}
}
}
}
运行后,返回下面的堆栈跟踪,我无法弄清楚它出错的地方。
Caused by: java.lang.ClassNotFoundException: com.gluonhq.charm.glisten.control.TextField
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at javafx.fxml/javafx.fxml.FXMLLoader.loadTypeForPackage(Unknown Source)
at javafx.fxml/javafx.fxml.FXMLLoader.loadType(Unknown Source)
... 19 more
答案 0 :(得分:0)
更改fxml文件中TextField的导入。
更改
com.gluonhq.charm.glisten.control.TextField
到
javafx.scene.control.TextField