【发布时间】:2022-08-20 00:56:32
【问题描述】:
如何仅通过 ID 更改 JavaFX 标签的文本? 代码的简化版本如下所示。
对于上下文,我们有一个标签网格(GridPane)(它是一个数独游戏),标签从 Label_0_0,...,到 Label_8_8(表示网格中的位置)编号。我们正在嵌套 for 循环中遍历标签网格,并尝试使用 for 循环当前坐标处的 ID 在不同的标签/网格框上设置不同的数字。 (为简单起见,我在代码示例中省略了 for 循环等。)
我已经在整个互联网上搜索了答案,但还没有弄清楚,非常感谢任何帮助:)
String labelID = \"ID_1\";
int index = 5;
Label currentlySelectedLabel = (Label) ???; // sth like xx.getElementByID, if that existed
currentlySelectedLabel.setText(Integer.toString(index));
对 FXML 中标签的一些引用:
...
<Label fx:id=\"Label_8_6\" alignment=\"CENTER\" onMouseClicked=\"#MyFrstLabelClicked\" onMouseMoved=\"#OnMouseMovedOnLabel\" prefHeight=\"44.0\" prefWidth=\"46.0\" text=\"0\" GridPane.columnIndex=\"6\" GridPane.rowIndex=\"8\" />
<Label fx:id=\"Label_8_7\" alignment=\"CENTER\" onMouseClicked=\"#MyFrstLabelClicked\" onMouseMoved=\"#OnMouseMovedOnLabel\" prefHeight=\"44.0\" prefWidth=\"46.0\" text=\"0\" GridPane.columnIndex=\"7\" GridPane.rowIndex=\"8\" />
<Label fx:id=\"Label_8_8\" alignment=\"CENTER\" onMouseClicked=\"#MyFrstLabelClicked\" onMouseMoved=\"#OnMouseMovedOnLabel\" prefHeight=\"44.0\" prefWidth=\"46.0\" text=\"0\" GridPane.columnIndex=\"8\" GridPane.rowIndex=\"8\" />
</children>
</GridPane>
</center>
</BorderPane>
-
你所说的“ID”是什么意思? CSS ID?你没有对标签的引用吗?
-
检查了几种方法here。
标签: user-interface javafx label