Как вывести вектор в JTextArea в JFrame? - PullRequest
0 голосов
/ 08 февраля 2012

Скажем так, у меня есть вектор строк, и я хочу вывести их в JTextArea.Какие методы мне следует использовать?

Я думал об использовании цикла for с:

Vector temp = new Vector();
String temp = list.getText(i) + '\n';
textArea.setText(temp);

Что, я знаю, не работает.Я слышал, что append () делает что-то связанное, но не был уверен, что делать.Любые советы?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Во-первых, Vector - это синхронизированный контейнер.Это означает, что это потокобезопасно.Если вы не планируете получить к нему доступ с помощью нескольких потоков, то в этом нет особого смысла, и вам лучше просто использовать ArrayList.

Во-вторых, если вы не используете действительно древнюю версию Java, вы будетехотите убедиться, что вы используете параметризованный контейнер, например:

List<String> list = new ArrayList<String>();

Чтобы проверить методы в JTextArea, Java API - ваш друг.

Вам также нужно будет перебрать контейнер, чтобы добавить все его элементы.

1 голос
/ 08 февраля 2012

ну, ты близко. Я думаю, что ты имел в виду ...

Vector<String> list;
...
String tmp = "";
for( int i = 0 ; i < list.size(); i++ )
{
   tmp = tmp + list.get(i) + "\n"; 
}
textArea.setText( tmp );

А что касается вашего другого комментария, то да, всякий раз, когда выполняется цикл, который добавляет строковое значение, вы захотите использовать StringBuffer вместо строки ...

Vector<String> list;
...
StringBuffer tmp = new StringBuffer();
for( int i = 0 ; i < list.size(); i++ )
{
    tmp.append( list.get(i) + "\n");
}
textArea.setText( tmp.toString() );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...