2017-08-26 2 views
2

So schreibe ich ein Programm, das zur Automatisierung der Aktualisierung von Windows-Maschinen verwendet werden wird. Letzten Tag habe ich gerade den aktuellen Arbeitsstand des Programms gespeichert und gehe nach Hause. Heute, als ich versuchte, daran zu arbeiten, bemerkte ich, dass es kompiliert und es läuft ohne Fehler, aber Non-End javaFx GUI wird angezeigt. Ich gebe mehrere davon aus, um das zu reparieren. Ich habe das Projekt von eclipse neon.3 geputzt, ich habe das Meaven-Projekt neu erstellt, ich habe ein neues Projekt mit neuen Klassen erstellt und einfach den Code in sie kopiert. Ich bewege sogar das Projekt von Eclipse nach IntelliJ und führe es dort aus. Das Verhalten war das gleiche.Java fx Programm ausführen und kompilieren, aber nicht sichtbar gui

Also mein Haupt sieht so aus, nichts besonderes daran. Ich lade Main fxml, die Hauptobjekt ist TableView und einige Side-Info.

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

Im Hauptcontroller initialisiere ich die Tabelle auf diese Weise.

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

auf consol Ausgang i "nach tableView.setItems" und dann "Am Ende showMainView()" so dass bedeutet Injektion Abhängigkeiten erfolgreich (ich bin nicht wahr?) beendet hatten lesen können und danach ohne Fehler Programm funktioniert, aber gui zeigt sich nicht

fxml relevent ist i als Link hinzufügen, weil sie zu groß ist, wie der Rest der Proben einzufügen: https://codepaste.net/z06nzf

Antwort

2

Sie haben vergessen, 01 zu anrufen. Ihr Fenster wird daher nie sichtbar.

public void showMainView() throws IOException{ 
    ... 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
    System.out.println("On the end of showMainView()"); 
} 
Verwandte Themen