2017-04-19 5 views
0

をクリックします。JavaFXの変更リスト私は私のようなホルダー値をプリセットしました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()を使用することはできません。

私はラベルだけのテキストを変更するための同様の質問を見ましたが、解決策はラベルのArrayListで動作しないsetText()を使用することです。ホルダーテキストを更新してArrayListの新しいラベルに置き換える方法はありますか?

答えて

0

リスト内のラベルを置き換えるときは、そのラベルをUIに置き換えません。元のラベルは引き続きUIに表示されます。既存のラベルのsetText(...)に電話するだけです:

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

ああ、ありがとう!私はそれがラベルの配列であったとき、私が "this.lblModuleNames [index] .setText(lblModuleName)"としてそれを持っていたので、私はとても馬鹿だと感じます。私は新しいコードがUIでそれを変更しないことに気付かなかった。これまでにありがとうございました! – nootnoot

関連する問題