#java #swing #file-io #jlist
#java #swing #file-io #jlist
Вопрос:
У меня есть следующий Java-код для чтения текстового файла:
class ReadFile {
public static void main(String [] args) {
File archivo = null;
FileReader fr = null;
BufferedReader br = null;
try {
archivo = new File ("C:\archivo.txt");
fr = new FileReader (archivo);
br = new BufferedReader(fr);
String line;
while((line=br.readLine())!=null)
System.out.println(line);
}
catch(Exception e){
e.printStackTrace();
}finally{
try{
if( null != fr ){
fr.close();
}
}catch (Exception e2){
e2.printStackTrace();
}
}
}
Но мне нужно загрузить эту информацию в JList
, чтобы это JList
показало мне, какие слова я сохранил в файле. Кто-нибудь знает, как это сделать?
Комментарии:
1. Что такое «listbox»? В J2SE такого класса нет.
2. Какой пользовательский интерфейс вы используете? Свинг? JSP? JSF? и т. д
3. Пожалуйста, используйте теги code при публикации кода. Для этого выберите пример кода и нажмите
{}
кнопку над формой ввода сообщения. Я немного привел в порядок приведенный выше код, но также в будущем буду использовать логичный и последовательный отступ для разделов кода.4. Я полагаю, что в Java это называется JList (проверьте это здесь [ссылка] java2s.com/Code/Java/Swing-JFC /… ). Спасибо Эндрю за это! 🙂
5. Ах, это Swing? Вы должны упомянуть и пометить как таковой. Я отредактировал вопрос.
Ответ №1:
Источник
import java.io.*;
import javax.swing.*;
import java.util.Vector;
class ReadFile {
public static void main(String [] args) {
File archivo = null;
FileReader fr = null;
BufferedReader br = null;
try {
archivo = new File ("ReadFile.java");
fr = new FileReader (archivo);
br = new BufferedReader(fr);
// normally I would prefer to use an ArrayList, but JList
// has a constructor that takes a Vector directly.
Vector<String> lines = new Vector<String>();
String line;
while((line=br.readLine())!=null) {
System.out.println(line);
lines.add(line);
}
JOptionPane.showMessageDialog(null, new JScrollPane(new JList(lines)));
} catch(Exception e) {
e.printStackTrace();
} finally {
try{
if( null != fr ) {
fr.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
Снимок экрана
Комментарии:
1. Спасибо, Эндрю! Ты молодец! Я искал это и не мог понять. Вы не знаете, есть ли какой-нибудь способ, чтобы, если у меня в текстовом файле есть какой-то формат… Например: Имя: Джон — Возраст: 28 Имя: Роуз — Возраст: 25 Было бы сложно загрузить данные, например: Джон 28 Роуз 25?
2. @mandy: На самом деле звучит так, как будто эти данные могли бы быть лучше представлены в
JTable
. Что касается получения данных в форме, необходимой для табличной модели, мне нужно было бы знать дополнительные подробности о точном формате файла. Можете ли вы отредактировать свой вопрос и опубликовать файл примера? Можем ли мы ожидать, что все имена будут единственнымиString
? Например, нет имен Джона Смита или Роуз Ван Дер Вен?3. Векторный класс устарел, вам следует использовать ArrayList (или что-то еще) для чтения.
4. @kajacx Тебе следует попробовать использовать
ArrayList
для созданияJList
, прежде чем говорить подобные глупости.Vector
не является ни устаревшим, ни устаревшим.