2017-10-13 18 views
0

Also versuche ich Szenen in JavaFX zu wechseln, aber ich kann nicht scheinen zu arbeiten, wenn ich es hart codierte Ich konnte es mit Lambda-Ausdrücke arbeiten.Wechseln Szenen in JavaFX (FXML) Fehler

public class Main extends Application { 

Stage window; 
Scene scene1; 
Scene scene2; 

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

@Override 
public void start(Stage primaryStage) throws Exception { 
    window = primaryStage; 

    Label label = new Label("Welcome to the first scene"); 
    Button bttn1 = new Button("Go to second scene"); 
    bttn1.setOnAction(e -> window.setScene(scene2)); 

    //Scene 1 
    VBox layout1 = new VBox(20); 
    layout1.getChildren().addAll(label, bttn1); 
    scene1 = new Scene(layout1, 400, 400); 

    //Scene 2 
    Button bttn2 = new Button("Go to first scene"); 
    bttn2.setOnAction(e -> window.setScene(scene1)); 

    StackPane layout2 = new StackPane(); 
    layout2.getChildren().add(bttn2); 
    scene2 = new Scene(layout2, 400, 500); 

    window.setScene(scene1); 
    window.setTitle("Test"); 
    window.show(); 
} 

jedoch das Projekt ein paar verschiedene GUIs beinhaltet, und ich würde es vorziehen, die GUIs in FXML Scene Builder zu entwerfen, als sie die FX Art und Weise zu codieren. Aber wenn ich versucht habe, den FXML-Weg zu machen, der nicht funktioniert hat, erscheint immer ein Fehler, wenn ich den Knopf drücke.

Fehlermeldung part 1 part 2

Dies ist das Dokument Controller-Code.

+0

In Ihrem Beitrag sind 'Initializable {' und 'öffentliche Klasse Main extends Application {' nicht als Code formatiert. – SteveFest

+0

Entschuldigung, ich werde das jetzt reparieren. Danke für den Spot. – HoiSinz

Antwort

0

Der von Ihnen gepostete Fehler besagt, dass der Code versucht, eine Schaltfläche als Ankerfenster zu laden. Prüfe auch, ob du ein Ankerpaneel mit dem FX hast: ich würde von Button1.

+0

Ich werde überprüfen und Ihnen danken, danke. – HoiSinz