1
for (int j =0; j < marks.size(); j++) {
    analyzeTextArea.setText(j + marks.get(j));
}

上面的代码给了我以下错误:

required: java.lang.String found: int
4

5 回答 5

3

我想marks.get(j)给你一个整数。因此,当您这样做时,j + marks.get(j)您将 的值添加marks.get(j)到 的值中j

因此,您以 Integer 作为j + marks.get(j). 但setText期待一个字符串。

您现在有多种可能性,具体取决于您的需要。

analyzeTextArea.setText(Integer.toString(j + marks.get(j)));

这种情况仍然进行添加然后将其转换为 String 以尊重setText参数类型。

有了这个 :

analyzeTextArea.setText("" + (j + marks.get(j)));

""告诉参数将是一个字符串,然后你将连接jmarks.get(j)。因此,例如,对于第一个循环,您将有一些以0

现在setText在循环中使用实际上没有意义,因为只会使用循环中设置的最后一个值,您可能应该使用JTextArea#append(String)

于 2012-05-26T18:01:38.233 回答
2

你需要做这样的事情:

analyzeTextArea.setText("" + (j + marks.get(j)));
于 2012-05-26T17:38:47.280 回答
1
analyzeTextArea.setText(Integer.toString(j + marks.get(j)));
于 2012-05-26T17:39:42.133 回答
1

试试这个,

for (int j =0; j < marks.size(); j++) {
    analyzeTextArea.setText(j + marks.get(j)+"");
    }
于 2012-05-26T17:40:49.167 回答
1

这应该有效,但您应该使用 .append() 而不是 .setText()。因为 .setText() 删除之前的内容并写入。但是 .append() 只是添加信息

于 2016-04-28T08:30:19.543 回答