2016-10-15 11 views
2

私のアプリケーションでは、ユーザーがFormAのリストに曲を連続して追加できるようにしたい。 FormBは、追加された曲をラベルとして表示します。他のフォームにデータを渡して、フォームを更新する

ラベルリストの作成方法はわかっていますが、残念ながら追加された曲はFormBに表示されません。 Songが追加されるたびにFormBを更新する方法が必要なので、FormBは常に最新です。

これは私が試したものです:

public void createPlaylist() { 
    for (int i = 0; i < songList.getSongList().size(); i++) { 
     Button temp = new Button(songList.getSongList().get(i).toString()); 
     listCont.add(temp); //add Buttons to the List-Container for every Song in the List 
    } 
    centerCont.removeComponent(listCont); 
    centerCont.removeComponent(bottomCont); //remove Containers to add the updated ones (?) 
    centerCont.add(listCont).add(bottomCont); //add updated Containers 
} 

を新たに追加ボタンが表示されるはずFormBはそれをやっていないので、これは、動作しません。

どうすればよいですか?

+1

FormAで曲を追加した後、別のボタンを押してFormBに移動し、FormAで追加されたすべての曲を表示しますか? 'centerCont.add(listCont).add(bottomCont);'の後に 'FormB.revalidate()'を呼び出そうとしましたか? FormAで曲を追加する際に使用したコードはどこですか? 'songList.getSongList()'が空でないことを確認しましたか? – Diamond

+0

こんにちは、FormAで私は、リストに曲を追加し、FormBを表示するボタンを押し、ボタンはまた、上記の関数(createPlaylist)を呼び出します。私はrevalidateを追加しようとしましたが、何も変更しませんでした。コンソールにListを記録するとSongが出力されるので、Listは空ではないようです。それにlistContを追加した後で、もう一度FormにcenterContを追加する必要がありますか? –

答えて

2

Diamond Mubaarakのおかげで、私は問題を解決することができました。フォームをお互いに渡すだけなので、FormBメソッドでFormA.revalidate();と呼んでいます。

関連する問題