java - 使用 JavaFX 检查单击了哪个 Button 对象

标签 java button javafx

我正在制作一个基本的计算器,但我不确定如何检查是否单击了某个 Button。我想使用 Button 对象数组,然后检查单击的按钮是否与数组中的按钮对象匹配。我的代码如下。

Button[] digitButtons = { bt0, bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, bt9 };

for (int index = 0; index < 9; index++) {
    int position = -1;
    if (buttonClicked == digitButtons[index]) {
        position = index;
        break;
    }
}

最佳答案

这是一个例子:

public class Main extends Application {
    private int lastClickedIndex = -1; 

    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane root = new BorderPane();
            Scene scene = new Scene(root, 400, 400);


            Button[] digitButtons = new Button[10];
            for(int i = 0; i < 10; i++) {
                final int buttonInd = i;
                digitButtons[i] = new Button(Integer.toString(i));
                digitButtons[i].setOnAction(e -> {
                    System.out.println("Button pressed " + ((Button) e.getSource()).getText());
                    lastClickedIndex = buttonInd;
                });
            }

            root.setCenter(new HBox(digitButtons));

            primaryStage.setScene(scene);
            primaryStage.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

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

注意:不需要获取索引,因为 Button 已准确指定为事件源:e.getSource()

关于java - 使用 JavaFX 检查单击了哪个 Button 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40967789/

相关文章:

java - Throwable 参数 'ex' 到 'System.out.println()' 调用

java - 在 Activity 之间传递 ArrayList<String[]>

java - Weblogic 12.2.1.3 从 Moxy 到 Jackson

java - 从 spring 检索代理实例

html - 使用vertical-align将按钮在div内垂直居中

Android:点击首选项按钮?

JavaFX 与 Swing

java - 线程 "Thread 2"在 JavaFX 应用程序中做什么?

java - 使用外部 jar 文件中的类编译 Maven 项目(不在 Maven Artifact 中)

button - 如果 SwiftUI 中的条件为真,如何在按钮样式之间切换?