gpt4 book ai didi

java - JavaFX Action 事件处理程序

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:45 26 4
gpt4 key购买 nike

我有一个问题:是否有可能设置 Button 的 eventHandler 来触发/触发另一个 Button 的 eventHandler?

假设 buttonA 的 eventHandler 将触发/触发 buttonC 的 eventHandler。如果是,如果有人可以提供一些样本,我将不胜感激。我目前面临问题,因为我无法从另一个按钮关闭 stage2 (我认为高度由于类的可见性)

button4.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent e){
stage1.close();
**stage2**.setScene(scene);
**stage2**.show();
}
});

最佳答案

是的,可以,使用 fire :

Button button1 = new Button("Button 1");
button1.setOnAction(e -> System.out.println("Button 1 pressed!"));

Button button2 = new Button("Button 2");
button2.setOnAction(e -> {
System.out.println("Button 2 pressed! Pressing Button 1 ...");
button1.fire();
});

输出

Button 2 pressed! Pressing Button 1 ...
Button 1 pressed!

但这种方法不是建议的方法。您可以将处理程序的内容封装到一个方法中,您可以直接在处理程序中调用该方法:

Button button1 = new Button("Button 1");
button1.setOnAction(e -> actionToBeDone());

Button button2 = new Button("Button 2");
button2.setOnAction(e -> {
System.out.println("Things done on Button 2 press");
actionToBeDone();
});

以及方法

private void actionToBeDone(){
System.out.println("Things done on Button 1 press");
}

输出

Things done on Button 2 press
Things done on Button 1 press

关于java - JavaFX Action 事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39717565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com