首页 > 解决方案 > 如何查看是否在 GridPane 中选择了特定的 CheckBox?

问题描述

我创建了一个 10x10 GridPane 的复选框。我需要查看是否选择了特定的 CheckBox,但 GridPane 由节点组成。因此,如果我使用来自另一个线程的函数访问特定节点,我不能使用isSelected因为它是错误的类型。

我尝试修改函数 getNodeByRowColumnIndex 或强制类型为 CheckBox 但我不确定如何。

@FXML
private GridPane Grid;

@FXML
public void initialize() {
    for (int x = 0; x < 10; x++) {
        for (int y = 0; y < 10; y++) {
            this.Grid.add(new CheckBox(), x, y);
            //Problem here
            boolean bln = getNodeByRowColumnIndex(y,x,this.Grid).isSelected();
        }
    }
}

标签: javajavafxcheckboxgridpane

解决方案


getNodeByRowColumnIndex返回一个Node。您需要将其转换为CheckBox

Node node = getNodeByRowColumnIndex(y,x,this.Grid);
    if(node instanceof CheckBox){
          boolean bln = ((CheckBox)node).isSelected();
          //todo use bln
}

旁注1:尚不清楚为什么要检查刚刚添加isSelected的a 。 旁注 2:根据java 命名约定,使用.CheckBox
GridPane grid


推荐阅读