【发布时间】:2019-08-11 15:54:48
【问题描述】:
大家好,我是 java fx 的新手。我的代码更改 使用 rand func(1-16) 的输出标记设计。 最初我的代码没有错误但我想要我的设计 自动调整响应页面的大小,所以我把我的 16 个标签放在一个 Vbox 中 现在它是一个响应式页面。问题从这里开始。我不 弄清楚如何通过代码访问 vbox。我的代码无法访问 标签,它给出了错误。当我将标签从 vbox 代码中取出时 又开始工作了。我想知道使用 vbox 是否可以? 任何建议将不胜感激。
int myrand = rand.nextInt(15)+1;
System.out.println(myrand + "blue");
root.getChildrenUnmodifiable().get(myrand).setStyle("-fx-background-color: blue");
但是;代码指向这一行,行号上没有任何错误标志。
root.getChildrenUnmodifiable().get(myrand).setStyle("-fx-background-color: blue");
这是完整的错误日志
线程“Timer-0”java.lang.IndexOutOfBoundsException 中的异常:索引:10,大小:2
10蓝色
在 java.util.ArrayList.rangeCheck(ArrayList.java:653)
在 java.util.ArrayList.get(ArrayList.java:429)
在 com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:89)
在 com.sun.javafx.collections.VetoableListDecorator.get(VetoableListDecorator.java:306)
在 javafx.collections.FXCollections$UnmodifiableObservableListImpl.get(FXCollections.java:936)
在 javafxapp.Lighproject$1.run(Lighproject.java:42)
在 java.util.TimerThread.mainLoop(Timer.java:555)
在 java.util.TimerThread.run(Timer.java:505)
如您所见,它使用 1 个循环并给出错误。这是我的层次结构 gluon scene builder 错误属于顶级Vbox。
【问题讨论】:
-
给
labels一个FX:ID。 -
如果您要使用相同的样式更改所有标签,请给
VBox一个FX:ID并获取它的孩子。 -
已经给出了每个节点的 id
-
看来你需要做一些基本的 JavaFX FXML 教程。
-
显然是线程问题。但是不知道热改代码:)
标签: javafx indexoutofboundsexception scenebuilder gluon