因此,我正在編寫一個程序,將用於自動更新Windows機器。最後一天,我只是保存了當前的程序工作狀態並回家。今天,當我嘗試去處理它時,我注意到它正在編譯,它運行時沒有錯誤,但是沒有結束的javaFx GUI顯示出來。我花了幾個我們的試圖修復。我通過eclipse neon.3清理了這個項目,我重建了meaven項目,我用新的類創建了新的項目,並將代碼複製到它們中。我甚至將項目從Eclipse移動到IntelliJ並在那裏運行。行爲是一樣的。Java FX程序運行和編譯,但不顯示可見的GUI
所以我的主要看起來就是這樣,沒什麼特別的。我加載了主要的對象是tableView和一些輔助信息的主要的fxml,其中 是主要的對象。
@Override
public void start(Stage primaryStage) throws IOException, InterruptedException, InvalidFormatException {
tableList = makeMainList();
JavaFXmainClass.primaryStage = primaryStage;
JavaFXmainClass.primaryStage.setTitle("xD Pro Windows Updater Manager Ascendet Master OP xD");
showMainView();
}
public void showMainView() throws IOException{
final FXMLLoader loader = new FXMLLoader();
System.out.println(this.getClass().getResource("fxml//MainView.fxml"));
loader.setLocation(this.getClass().getResource("fxml//MainView.fxml"));
mainLayout = loader.load();
Scene scene = new Scene(mainLayout);
primaryStage.setScene(scene);
System.out.println("On the end of showMainView()");
}
public static void main(String[] args) {
launch(args);
}
在主控制器中,我正以這種方式初始化表格。
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
//setting combobox items
StartTime.getItems().addAll(comboBoxValues);
EndTime.getItems().addAll(comboBoxValues);
StartTime.setPromptText("Start Time");
EndTime.setPromptText("End Time");
//adding listiner for combobox
addComboBoxChangeListiner(StartTime, What.STARTTIME);
addComboBoxChangeListiner(EndTime, What.ENDTIME);
setColumns();
mainTable = JavaFXmainClass.getTableList();
tableList = fromArrayToObservableArray(mainTable, tableList);
System.out.println(mainTable.size());
System.out.println("before tableView.setItems");
tableView.setItems(mainTable);
System.out.println("after tableView.setItems");
}
private void setColumns() {
tableView.setFixedCellSize(35);
id.setCellValueFactory(new PropertyValueFactory<Id,Integer>("id"));
ip.setCellValueFactory(new PropertyValueFactory<Server,String>("ip"));
name.setCellValueFactory(new PropertyValueFactory<Server,String>("name"));
type.setCellValueFactory(new PropertyValueFactory<Server,String>("type"));
date.setCellValueFactory(new PropertyValueFactory<Server,LocalDate>("date"));
id.setCellFactory(new LineNumberCellFactory());
ip.setCellFactory(new getObjectIp());
}
上康壽輸出我可以 然後 「關於showMainView()的終結」「tableView.setItems後」讀 這樣就意味着注入依賴已經圓滿結束(我是吧?) 和之後沒有任何錯誤的程序工作,但GUI並不顯示出來
FXML是培訓相關我添加的鏈接,因爲它太大,膏體樣品的其餘部分:https://codepaste.net/z06nzf