Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaFX检查单击了哪个按钮对象_Java_Button_Javafx - Fatal编程技术网

使用JavaFX检查单击了哪个按钮对象

使用JavaFX检查单击了哪个按钮对象,java,button,javafx,Java,Button,Javafx,我正在制作一个基本的计算器,但我不确定如何检查是否单击了某个按钮。我想使用按钮对象数组,然后检查单击的按钮是否与数组中的按钮对象匹配。我的代码如下 Button[] digitButtons = { bt0, bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, bt9 }; for (int index = 0; index < 9; index++) { int position = -1; if (buttonClicked == digi

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

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;
    }
}
Button[]数字按钮={bt0、bt1、bt2、bt3、bt4、bt5、bt6、bt7、bt8、bt9};
对于(int-index=0;index<9;index++){
int位置=-1;
如果(buttonClicked==数字按钮[索引]){
位置=索引;
打破
}
}
一个简单的方法


FXML 创建两个按钮(分别调用
B1
B2
,并为每个按钮添加
fx:id

一个简单的方法


FXML 创建两个按钮(分别调用
B1
B2
,并为每个按钮添加
fx:id

以下是一个例子:

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);
    }
}
public类主扩展应用程序{
private int lastClickedIndex=-1;
@凌驾
公共无效开始(阶段primaryStage){
试一试{
BorderPane根=新的BorderPane();
场景=新场景(根,400400);
按钮[]数字按钮=新按钮[10];
对于(int i=0;i<10;i++){
最终int按钮nind=i;
digitButtons[i]=新按钮(Integer.toString(i));
数字按钮[i]。设置操作(e->{
System.out.println(“按下按钮”+((按钮)e.getSource()).getText());
lastClickedIndex=按钮D;
});
}
root.setCenter(新的HBox(数字按钮));
初级阶段。场景(场景);
primaryStage.show();
}捕获(例外e){
e、 printStackTrace();
}
}
公共静态void main(字符串[]args){
发射(args);
}
}
注意:无需获取索引,因为
按钮
被精确指定为事件源:
e.getSource()

以下是一个示例:

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);
    }
}
public类主扩展应用程序{
private int lastClickedIndex=-1;
@凌驾
公共无效开始(阶段primaryStage){
试一试{
BorderPane根=新的BorderPane();
场景=新场景(根,400400);
按钮[]数字按钮=新按钮[10];
对于(int i=0;i<10;i++){
最终int按钮nind=i;
digitButtons[i]=新按钮(Integer.toString(i));
数字按钮[i]。设置操作(e->{
System.out.println(“按下按钮”+((按钮)e.getSource()).getText());
lastClickedIndex=按钮D;
});
}
root.setCenter(新的HBox(数字按钮));
初级阶段。场景(场景);
primaryStage.show();
}捕获(例外e){
e、 printStackTrace();
}
}
公共静态void main(字符串[]args){
发射(args);
}
}
注意:无需获取索引,因为
按钮
被精确指定为事件源:
e.getSource()

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);
    }
}