Как загрузить текстовый файл в JList?

#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 не является ни устаревшим, ни устаревшим.