我在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的新标签更新和替换持有者文本?
答案 0 :(得分:0)
当您替换列表中的标签时,您不会在UI中替换它。原始标签仍显示在UI中。只需在现有标签上调用setText(...)
:
public void setUsername(int index, String lblUserName) {
this.lblUserNames.get(index).setText(lblUserName);
}