单击按钮时JavaFX更改标签列表

JavaFX Change list of labels on button click

我在 JavaFX 应用程序中有一个标签列表,我用这样的 holder 值预设:

for(int i = 0; i < 4; i++) {
  lblUserNames.add(new Label("Username goes here"));
}

我正在尝试使用

更改标签以在单击按钮时显示用户名
public void setUsername(int index, String lblUserName) {
   this.lblUserNames.set(index, new Label(lblUserName));
}

但它仍然显示持有人文本,而不是更新以显示用户名;然而,当我打印出标签列表时,值确实发生了变化。

之前我只有一组标签 (Label[]) 并且可以使用 ".setText(lblUserName) 时,我就让它工作了。我将其更改为 ArrayList,以便可以添加更多用户并且代码无需更改太多,但现在我不能再使用 setText()

我已经看到类似的问题,只是更改标签的文本,但解决方案是使用 setText(),它不适用于标签的 ArrayList。有什么方法可以用 ArrayList 的新标签更新和替换 holder 文本吗?

当您替换列表中的标签时,您并没有在 UI 中替换它。 UI 中仍显示原始标签。只需在现有标签上调用 setText(...)

public void setUsername(int index, String lblUserName) {
   this.lblUserNames.get(index).setText(lblUserName);
}