如何在JTextArea中打印数组列表(使用char)?

时间:2014-03-09 20:01:59

标签: java arraylist char jtextarea

好吧,所以我必须为学校开一个名为“愤怒的坦克”的游戏,它基本上是一个简单版的愤怒的小鸟。 我们必须在文本文件中读取以用作我们游戏的景观,此文本文件包含空格和主题标签,hastags代表土地。 该文件已读取bean并插入到arraylist中,有一个公共方法calles getLandscapeFromFile()。

我正在尝试将景观打印到名为textArea的JTextArea中,使用一个用图像替换所有主题标签的循环。我应该使用textArea还是应该使用另一个面板?

这是我尝试但不起作用的代码:

for (int i = 0; i < Landscape.getLandscapeFromFile().size(); i++) {
            for (char[] c : Landscape.getLandscapeFromFile()) {
                textArea.append(String.valueOf(c[i]));
}
}

我一直在尝试各种各样的东西,但似乎什么都没有用...... 顺便说一下,我不是很擅长Java,这只是我学习IT的第一年。

2 个答案:

答案 0 :(得分:1)

问题在于你的第二个循环

您选择i字词

for (char[] c : Landscape.getLandscapeFromFile()) {
        textArea.append(String.valueOf(c[i]));
    } 

您可能想要编写该数组的每个字符。

for (char[] c : Landscape.getLandscapeFromFile()) {
    textArea.append(String.valueOf(c));
}

当您的任务是将内容表单文件写入textArea时,您应该这样做。

提示:您应该避免两次访问加载方法,因为它可以耗费用户本地变量。

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
}

答案 1 :(得分:0)

您可以使用StringBuilder

StringBuilder sb = new StringBuilder();

for (int i = 0; i < Landscape.getLandscapeFromFile().size(); i++) {
    for (char[] c : Landscape.getLandscapeFromFile()) {
        sb.append(String.valueOf(c));
    }
}

textArea.setText(sb.toString());