gpt4 book ai didi

Javafx从网格 Pane 中的文本字段获取文本

转载 作者:行者123 更新时间:2023-12-02 03:24:19 25 4
gpt4 key购买 nike

对于我正在从事的项目,我必须在屏幕上显示矩阵的值。我选择通过使用网格 Pane 中的文本字段来执行此操作,如下代码所示:

for(int row = 0; row < length; row++){
for(int column = 0; column < width; column++){
// Create a new TextField in each Iteration
TextField tf = new TextField();
tf.setPrefHeight(50);
tf.setPrefWidth(50);
tf.setAlignment(Pos.CENTER);
tf.setEditable(true);
tf.setText(String.valueOf(this.getElement(row, column)));

// Iterate the Index using the loops
setRowIndex(tf,row);
setColumnIndex(tf,column);
table.getChildren().add(tf);
}
}

如果我更改该屏幕内文本字段的值,我希望能够保存它们。为了做到这一点,我必须能够从文本字段中获取文本。我尝试了以下代码,但表元素的迭代被定义为节点,因此没有 .getText() 方法。

OkButton.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle (ActionEvent event){
for (Node nd:table.getChildren()){
//Code goes here but Node does not have .getText() method
}

Stage stage = (Stage) OkButton.getScene().getWindow();
stage.close();
}
});

有人知道如何获取这些值吗?

非常感谢!

最佳答案

假设 table 的类型为 GridPane,您应该像这样添加 TextField:

table.add(tf, column, row);

要访问一个元素,当它的列索引和行索引已知时,没有简单的方法:

public Node getNodeByRowColumnIndex(final int row,final int column,GridPane gridPane) {
Node result = null;
ObservableList<Node> childrens = gridPane.getChildren();
for(Node node : childrens) {
if(gridPane.getRowIndex(node) == row && gridPane.getColumnIndex(node) == column) {
result = node;
break;
}
}
return result;
}

另请参阅JavaFX: Get Node by row and column的答案.

关于Javafx从网格 Pane 中的文本字段获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39184748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com