2012-05-26 3 views
1
for (int j =0; j < marks.size(); j++) { 
    analyzeTextArea.setText(j + marks.get(j)); 
} 

Приведенный выше код дает мне следующее сообщение об ошибке:Как отобразить массив целых чисел в JTextArea?

required: java.lang.String found: int 
+0

После того, как вы поняли основы, рассмотрите возможность использования 'JTable' (2D-массив) или' JList'. –

ответ

3

I угадать 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))); 

Этот случай до сих пор делают добавление затем преобразовать его в строку, чтобы соблюсти setText тип параметра.

С этим:

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

"" говорит, что параметр будет строка, а затем вы будете сцепить j и marks.get(j). Так, например, для первого цикла вы будете иметь то, что начать с 0

Теперь с помощью setText в цикле действительно не имеет смысла, потому что только последнее значение, установленное в цикле будет использоваться вам, вероятно, следует использовать JTextArea#append(String) ,

+0

+1 для деталей. –

+0

+1 для «Вот почему он не работает, попробуйте это», а не «сделайте это, он работает», – mastaH

2

Вам нужно сделать что-то вроде этого:

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

Попробуйте это,

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

Я сомневаюсь, что второе решение будет работать. –

+0

второе решение даст ошибку, потому что 'int' не имеет метода' toString() ' – mastaH

1

Это должно работать, но вместо .setText() вы должны использовать .append(). потому что .setText() удаляет предыдущее содержимое и записывает его. но .append() просто добавляет информацию

Смежные вопросы