好吧,所以我必须为学校制作一款名为“愤怒的坦克”的游戏,它基本上是愤怒的小鸟的简单版本。 我们必须读入一个文本文件作为我们游戏的风景,这个文本文件包含空格和标签,标签代表土地。 该文件已被读取并插入到数组列表中,有一个公共(public)方法调用 getLandscapeFromFile()。
我正在尝试使用循环将所有主题标签替换为图像,将景观打印到名为 textArea 的 JTextArea 中。我应该使用文本区域还是应该使用另一个面板?
这是我尝试过但不起作用的代码:
for (int i = 0; i < Landscape.getLandscapeFromFile().size(); i++) {
for (char[] c : Landscape.getLandscapeFromFile()) {
textArea.append(String.valueOf(c[i]));
}
}
我一直在尝试各种方法,但似乎没有任何效果...... 顺便说一句,我不太擅长 Java,这只是我学习 IT 的第一年。
最佳答案
问题出在你的第二个循环
您选择单词的i
字符
for (char[] c : Landscape.getLandscapeFromFile()) {
textArea.append(String.valueOf(c[i]));
}
您可能习惯写入该数组的每个字符。
for (char[] c : Landscape.getLandscapeFromFile()) {
textArea.append(String.valueOf(c));
}
由于您的任务是将文件内容写入文本区域,因此您应该执行此操作。
提示:您应该避免访问加载方法两次,因为它会消耗用户局部变量的时间。
List<char[]> landscapes = Landscape.getLandscapeFromFile(); //Read once
for(char[] landscape : landscapes) {//Iterate through all landscapes
stextArea.append(new String(landscape)); //Create new String for char array
}
关于java - 如何在 JTextArea 中打印数组列表(使用字符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22287413/