Java 为典当采取行动

Java 为典当采取行动,java,javafx,Java,Javafx,在我的跳棋游戏中,我得到了几个棋子。我希望能够对每一个棋子(圆圈)进行设置,而无需对每一个棋子进行24种不同的设置。有什么想法吗 使用getChildren()方法获取父节点中的所有棋子,并将其存储在列表中,然后迭代它并按如下方式调用setOnAction List<Node> chieldNode = new ArrayList<>(); chieldNode = parentNode.getChildren(); for (Node node

在我的跳棋游戏中,我得到了几个棋子。我希望能够对每一个棋子(圆圈)进行设置,而无需对每一个棋子进行24种不同的设置。有什么想法吗

使用getChildren()方法获取父节点中的所有棋子,并将其存储在列表中,然后迭代它并按如下方式调用setOnAction

List<Node> chieldNode = new ArrayList<>();
        chieldNode = parentNode.getChildren();
    for (Node node : chieldNode) {
        if (node instanceof Button) {
           ((Button) node).setOnAction(e -> {
                System.out.println(((Button) node).getText());
            });
       }
}
List chieldNode=new ArrayList();
chieldNode=parentNode.getChildren();
for(节点:chieldNode){
if(节点实例of按钮){
((按钮)节点)。设置操作(e->{
System.out.println(((按钮)节点).getText());
});
}
}
或者参考下面的例子了解一些情况

public class DemoEx extends Application {
        @Override
        public void start(Stage primaryStage) throws Exception {
                GridPane gridPane = new GridPane();
                Button[] button = new Button[100];
                for (int i = 0; i < 10; i++) {
                    for (int j = 0; j < 10; j++) {
                        button[j] = new Button(i + "" + j);
                        button[j].setPrefSize(50, 50);
                        gridPane.add(button[j], i, j);
                    }
                }

                List<Node> chieldNode = new ArrayList<>();
                chieldNode = gridPane.getChildren();
                for (Node node : chieldNode) {
                    if (node instanceof Button) {
                        ((Button) node).setOnAction(e -> {
                            System.out.println(((Button) node).getText());
                        });
                    }
                }

                Scene scene = new Scene(gridPane, gridPane.getMaxHeight(), gridPane.getMaxWidth());
                primaryStage.setScene(scene);
                primaryStage.show();
            }
        public static void main(String args[]) {
            launch(args);
        }
    }
public类DemoEx扩展应用程序{
@凌驾
public void start(Stage primaryStage)引发异常{
GridPane GridPane=新建GridPane();
按钮[]按钮=新按钮[100];
对于(int i=0;i<10;i++){
对于(int j=0;j<10;j++){
按钮[j]=新按钮(i+“”+j);
按钮[j].setPrefSize(50,50);
添加(按钮[j],i,j);
}
}
List chieldNode=new ArrayList();
chieldNode=gridPane.getChildren();
for(节点:chieldNode){
if(节点实例of按钮){
((按钮)节点)。设置操作(e->{
System.out.println(((按钮)节点).getText());
});
}
}
场景场景=新场景(gridPane,gridPane.getMaxHeight(),gridPane.getMaxWidth());
初级阶段。场景(场景);
primaryStage.show();
}
公共静态void main(字符串参数[]){
发射(args);
}
}

使用循环并将棋子存储在一个数组中?“不为每个棋子设置24个不同的动作”。为什么不呢?只需在循环中调用
setOnAction