对于一个高中项目,我创建了一个for循环,显示我初始化的5首歌曲。我把它放在一个名为btnInitializeActionPerformed的按钮下,所以当按下初始化按钮时,它会显示歌曲,但它只显示最后一首歌,我做错了什么?
这是循环
Collections.addAll (strSongArtist, "Dont Stop Believing", "this", "hello", "Think", "No");
for (int i = 0; i < strSongArtist.size(); i++) {
String valueContent = strSongArtist.get(i);
txtOutput.setText( valueContent);
}
当我在for循环中显示这样的strSongArtist时:
System.out.println(strSongArtist.get(i));
顺便说一下,我的老师举了一个输出代码的例子:
txtOutput.setText( strSongArtist.get(rn.nextInt(strSongArtist.size())).toString());
但我不知道如何使用它?
答案 0 :(得分:1)
每次循环运行时,它都会将txtOutput
的文本设置为valueContent
的值,因此它会在循环结束时显示最后一位艺术家。您至少应创建一个字符串并将每个艺术家附加到该字符串并在循环结束时设置文本
String artists = "";
for (int i = 0; i < strSongArtist.size(); i++) {
artists += strSongArtist.get(i) + ", ";
}
txtOutput.setText( artists );
答案 1 :(得分:0)
您的问题是您在每次循环迭代期间调用txtOutout.setText()。
所以,即使textOutput是一些标签/面板,它可以显示多于字符串...你正在做的是你告诉它只显示一个字符串你正在传递它。
含义:你有一个产生5个单独字符串的循环。如果您希望这5个字符串一起显示,则必须构建包含所有5个单独字符串的内容。
你可以通过使用StringBuffer收集“get(i)”调用的结果来做到这一点;或者调用setTest(),结果为“getText()+”\ n“+ get(i)”...