1
我正在研究一個相當簡單的程序,但我無法弄清楚這裏有什麼問題。這是我的主類:從FXML調用方法時發生java.lang.reflect.InvocationTargetException
public class Main extends Application {
private QualityList ql;
private QualityController controller;
private Stage primaryStage;
@Override
public void start(Stage stage) throws Exception {
primaryStage = stage;
Parent root = FXMLLoader.load(getClass().getResource("/controller/QualityWindow.fxml"));
primaryStage.setTitle("Kwaliteiten V1.0");
primaryStage.setScene(new Scene(root, 1250, 800));
primaryStage.show();
ql = new QualityList();
controller = new QualityController();
controller.initController(ql);
controller.setStage(primaryStage);
ql.addObserver(controller);
}
public static void main(String[] args) {
launch(args);
}
}
這是我的控制器類(我有麻煩的部分):
private QualityList ql;
private Stage stage;
private DBClass connect;
public void initController(QualityList ql){
this.ql=ql;
this.connect = new DBClass();
readData();
initialiseTable();
}
.
.
.
@FXML
void printData(ActionEvent event){
ql.printData();
}
我遇到的問題是,通過在該方法printData調用時接口與事件它將導致java.lang.reflect.InvocationTargetException
。
但是,如果從例如initController方法調用相同的方法,它將完全按照計劃運行。
這個問題也似乎只有在原始對象在主類中生成並傳遞給控制器時纔出現。 如果我在控制器本身製造對象,則沒有問題,但是我不能觀察對象。