JavaFX更改按钮上的标签列表

时间:2017-04-19 14:04:50

标签: button arraylist label javafx-8 settext

我在JavaFX应用程序中有一个标签列表,我预设了一个持有人值:

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的新标签更新和替换持有者文本?

1 个答案:

答案 0 :(得分:0)

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

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