2017-08-26 16 views
2

Windowsマシンの更新を自動化するためのプログラムを作成しています。最後の日私はちょうどプログラムの現在の作業状態を保存して家に帰る。今日私はそれを処理しようとしたとき、コンパイル中であり、エラーなしに実行されていることに気付きましたが、非終端のjavaFx GUIが表示されています。私はそれを修復しようとすることでいくつかを費やします。私はEclipseネオンでプロジェクトをきれいにしました.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); 
} 

私はこのようにテーブルを初期化しています。 「showMainView(の終わりに)」i「がtableView.setItems後」 を読むことができるコンソル出力に

@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()); 
} 

、その後 ので、それは(私は右だ?)を注入依存関係が正常に終わったこと とあなたは01に電話をするのを忘れたhttps://codepaste.net/z06nzf

答えて

2

:そのエラープログラムが動作しているが、GUIが表示されないことなく、

FXMLはreleventされた後、サンプルの残りの部分のように貼り付けることが大きすぎるので、私はリンクとして追加します。したがって、ウィンドウは決して表示されません。

public void showMainView() throws IOException{ 
    ... 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
    System.out.println("On the end of showMainView()"); 
} 
関連する問題