2016-10-15 76 views
2

在我的應用程序中,我希望用戶能夠在FormA中連續添加歌曲到列表中。然後,FormB將顯示添加的歌曲作爲標籤。將數據傳遞給其他表單並更新表單

我知道如何創建標籤列表,但不幸的是,添加的歌曲不會顯示在FormB中。每次添加歌曲時,我都需要一種方式來更新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)。我試圖添加重新驗證,但我沒有改變任何東西。我在控制檯中記錄列表並輸出歌曲,所以列表似乎不是空的。在將listCont添加到表單後,我還需要再次將centerCont添加到表單中嗎? –

回答

2

感謝Diamond Mubaarak,我設法解決了這個問題。我只是將表單傳遞給對方,所以我在FormB方法中調用FormA.revalidate();

相關問題