Wenn ich button1
drücke, ändert sich meine Szene nicht, und es heißt, dass gedrückt wurde. Warum ist das?Warum reagiert meine Taste in Javafx seltsam
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Main extends Application {
Stage window;
Button button, button2;
Scene scene, scene2;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
window.setTitle("title");
// label 1
Label label1 = new Label("This is scene 1");
// button 1
button = new Button("Go to scene 2");
button.setOnAction(e -> {
window.setScene(scene2);
System.out.println("button 1 pressed");
});
// layout 1
StackPane layout = new StackPane();
layout.getChildren().addAll(label1, button);
scene = new Scene(layout, 200, 500);
// label 2
Label label2 = new Label("This is scene 2");
// button 2
button2 = new Button("go to scene 1");
button.setOnAction(e -> {
window.setScene(scene);
System.out.println("button 2 pressed");
});
// layout 2
StackPane layout2 = new StackPane();
layout2.getChildren().addAll(label2, button2);
scene2 = new Scene(layout2, 200, 500);
window.setScene(scene);
window.show();
}
}
Nur 2 hinzufügen: Statt das 'onAction' Handler der ersten Schaltfläche zu ändern, die eine für die zweite Taste eingestellt:' button2.setOnAction (e -> { window.setScene (Szene); System.out. println ("Taste 2 gedrückt"); }); ' – fabian
@fabian Wenn' button2' gedrückt wird, ändern Sie die Szene in 'Szene' und drucken Sie 'Taste2 gedrückt'. Ist das nicht was gesagt wird? Ich möchte, dass der Button1 mich zu Szene 2 bringt und ich möchte, dass Button2 mich zu scene1 bringt. –
Sie rufen 'button.setOnAction' auf, möchten aber selbst zum zweiten Mal einen' onAction' -Handler setzen. – fabian