2016-10-15 73 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();

相关问题