button1
を押すと、私のシーンは変わらず、button2
が押されたと表示されます。どうしてこれなの?なぜ私のボタンがJavafxで変わってしまうのですか
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();
}
}
2を追加するだけで、最初のボタンのonActionハンドラを変更する代わりに、2番目のボタンのハンドラを設定します: 'button2.setOnAction(e - > { window.setScene(scene); System.out。 – fabian
@ fabian 'button2'を押すと、シーンを' scene'に変更し、 'button 2 pressed'を表示します。println(" button 2 pressed "); })これは何を言っているのではないのですか?私は、button1が私をシーン2に連れて欲しく、button2が私をシーン1に連れて欲しいと思っています。 –
しかし、 'onAction'ハンドラを2回目に設定したい場合でも' button.setOnAction'を呼び出します。 – fabian