javafx运行时线程报错

在运行主函数时,可以打开舞台,但是在点击功能的控件时,就报错了
下面是报错描述:

img

img

这里是主函数代码
public class MainApp extends Application {
private Stage stage;
private Scene scene;
//标识当前用户
private User user;

@Override
public void start(Stage primaryStage) {
    try {
        stage  = primaryStage;
        showLoginView();
        primaryStage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

/**
 *    显示登录界面
 */
public void showLoginView() {
    try {
        stage.setTitle("Login");
        stage.getIcons().add(new Image("file:images/login.png"));
        LoginViewController lgController = (LoginViewController)replaceSceneContent("login/LoginView.fxml");
        lgController.setMainApp(this);
    }catch(Exception e) {
        e.printStackTrace();
    }
}

/**
 *    显示忘记密码界面
 */
public void showForgetView() {
    try {
        stage.setTitle("Forget");
        ForgetViewController fgController = (ForgetViewController)replaceSceneContent("forget/ForgetView.fxml");
        fgController.setMainApp(this);
    }catch(Exception e) {
        e.printStackTrace();
    }
    
}

/**
 *    显示密保问题验证界面
 */
public void showSecretQuesView() {
    try {
        stage.setTitle("SecretQuestion");
        SecretQuesViewController sqController = (SecretQuesViewController)replaceSceneContent("forget/SecretQuesView.fxml");
        sqController.setMainApp(this);
    }catch(Exception e) {
        e.printStackTrace();
    }
}

/**
 *    显示重置密码界面
 */
public void showResetPasswdView() {
    try {
        stage.setTitle("ResetPasswdView");
        ResetPasswdViewController rpController = (ResetPasswdViewController)replaceSceneContent("forget/ResetPasswdView.fxml");
        rpController.setMainApp(this);
    }catch(Exception e) {
        e.printStackTrace();
    }
    
}

/**
 *    显示注册界面
 */
public void showRegistView() {
    try {
        
        stage.setTitle("Regist");
        stage.getIcons().add(new Image("file:images/regist.png"));
        
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(MainApp.class.getResource("regist/RegistView.fxml"));
        BorderPane bp = (BorderPane)loader.load();
        scene = new Scene(bp);
        stage.setScene(scene);
        stage.setResizable(false);
        
        RegistViewController regController = (RegistViewController)loader.getController();
        System.out.println(regController);
        regController.setMainApp(this);
        
    }catch(Exception e) {
        e.printStackTrace();
    }
}

/**
 *    显示写日记视图
 */
public void showWriteView() {
    try {
        stage.setTitle("Write");
        stage.getIcons().add(new Image("file:images/write.png"));
        
        WriteViewController wController = (WriteViewController)replaceSceneContent("write/WriteView.fxml");
        wController.setMainApp(this);
    }catch(Exception e) {
        e.printStackTrace();
    }    
}

/**
 *    显示查找日记视图
 */
public void showFindView() {
    try {
        stage.setTitle("Find");
        stage.getIcons().add(new Image("file:images/find.png"));
        
        FindViewController fController = (FindViewController)replaceSceneContent("find/FindView.fxml");
        fController.setMainApp(this);
    }catch(Exception e) {
        e.printStackTrace();
    }    
}

/**
 *    显示日记系统主界面
 */
public void showSystemView() {
    try {
        stage.setTitle("SDSystem");
        stage.getIcons().add(new Image("file:images/home.png"));
        
        SystemViewController sdController = (SystemViewController)replaceSceneContent("system/SystemView.fxml");
        sdController.setMainApp(this);
    }catch(Exception e) {
        e.printStackTrace();
    }
}

/**
 *    显示指定的视图
 */
private Object replaceSceneContent(String fxmlFile) {
    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(MainApp.class.getResource(fxmlFile));
    
    AnchorPane ap = null;
    try {
        ap = (AnchorPane)loader.load();
    }catch(IOException e) {
        e.printStackTrace();
    }
    
    scene = new Scene(ap);
    stage.setScene(scene);
    stage.setResizable(false);
    
    return loader.getController();
    
}

/**
 *    获取scene
 */
public Scene getScene() {
    return scene;
}

/**
 *    获取Stage
 */
public Stage getStage() {
    return stage;
}

public User getUser() {
    return user;
}

public void setUser(User user) {
    this.user = user;
}

public static void main(String[] args) {
    launch(args);
}

}

JavaFX已经不是jdk的一部分了,你需要使用javaFX SDK

img
右侧错误内容看一下