JavaFX:GridPane,add()一个整数作为标签

JavaFX:GridPane,add()一个整数作为标签,java,javafx,int,gridpane,Java,Javafx,Int,Gridpane,请原谅这个可怕的通用网格窗格名称。。。一旦我得到一些关于这个的信息,它就会被改变 我正在向网格窗格中添加项目,它需要一个按钮,需要一个标签。。。除了这个int,几乎什么都需要 int[] listObjA = {312,23,241}; GridPane gridpane = new GridPane(); gridpane.add(new Label("Item Listing"), 1, 1); gridpane.add(l

请原谅这个可怕的通用网格窗格名称。。。一旦我得到一些关于这个的信息,它就会被改变

我正在向网格窗格中添加项目,它需要一个按钮,需要一个标签。。。除了这个int,几乎什么都需要

        int[] listObjA = {312,23,241};

        GridPane gridpane = new GridPane();

        gridpane.add(new Label("Item Listing"), 1, 1);
        gridpane.add(listObjA[0], 1, 2);

当然,保持这样的状态会告诉我“int不能转换为Node”。有什么建议吗?简单地用Java打印变量是多么困难,这让我感到困惑。顺便说一下,它必须是一个变量,因为我将有一个方法不断地更改它,所以简单地将它更改为新标签(“312”)不是一个选项无法解析为节点类型。你可以用它来代替它

           Label firstLabel=new Label("312");
           Label secondLabel=new Label("23");
           Label thirdLabel=new Label("241");
           gridpane.add(firstLabel, x, y);
           gridpane.add(secondLabel, x,y);
           gridpane.add(thirdLabel, x, y);

其中x,y是变量,包含插入节点的位置。

Java是强类型语言。您不能假装
int
是某种UI组件

为数组的每个元素创建标签:

int[] listObjA = {312,23,241};

GridPane gridpane = new GridPane();

gridpane.add(new Label("Item Listing"), 0, 0);

for (int i = 0 ; i < listObjA.length; i++) {
    Label label = new Label(Integer.toString(listObjA[i]));
    gridpane.add(label, i+1, 0);
}
int[]listObjA={312,23241};
GridPane GridPane=新建GridPane();
添加(新标签(“项目列表”),0,0;
for(int i=0;i
如果需要通过在数据结构中指定值来更改标签中的文本,则需要一个支持通知程序其他部分更改的数据结构
ObservableList
就是这样一种数据结构。您可以使用绑定API将
标签中的文本绑定到
可观察列表的内容:

ObservableList<Integer> observableList = FXCollections.observableList(Arrays.asList(312, 23, 241));

GridPane gridpane = new GridPane();

gridpane.add(new Label("Item Listing"), 0, 0);

for (int i = 0, size = observableList.size(); i < size; i++) {
    Label l = new Label();
    // bind text to content at list position
    l.textProperty().bind(Bindings.valueAt(observableList, i).asString());
    gridpane.add(l, 0, i + 1);
}
observeList observeList=FXCollections.observeList(Arrays.asList(31223241));
GridPane GridPane=新建GridPane();
添加(新标签(“项目列表”),0,0;
for(int i=0,size=observeList.size();i
在这里创建绑定意味着如果列表的内容发生更改,标签的内容将自动更新。例如

Scene scene = new Scene(gridpane);

scene.setOnMouseClicked(new EventHandler<MouseEvent>() {

    private int index;

    @Override
    public void handle(MouseEvent event) {
        int i = index++ % observableList.size();
        observableList.set(i, 10 + observableList.get(i));
    }
});
Scene-Scene=新场景(网格窗格);
scene.setOnMouseClicked(新的EventHandler(){
私有整数索引;
@凌驾
公共无效句柄(MouseeEvent事件){
int i=index++%observeList.size();
可观察列表集(i,10+可观察列表获取(i));
}
});

单击鼠标将其中一个值增加10,用户界面将显示该值。

不能将同一节点多次添加到场景图中。您可能想更改每个
add(…)
调用中的变量。