Не удается заполнить JList из файла TXT - PullRequest
2 голосов
/ 09 мая 2011

Вот мой рабочий код, который читает файл TXT и показывает его в консоли:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.DefaultListModel;
import javax.swing.JList;

public class LeerArchivoDeTexto {
    public static void main(String[] args) {
        File archivo = new File("Archivo.txt");
        BufferedReader lector = null;
        DefaultListModel lista = new DefaultListModel();
        JList jList1 = new JList();

        try {
            lector = new BufferedReader(new FileReader(archivo));
            String texto = null;

            while ((texto = lector.readLine()) != null) {
                lista.addElement(texto);
                System.out.println(texto);
            }
            jList1.setModel(lista);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (lector != null) {
                    lector.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}

Дело в том, что я хочу загрузить данные, которые есть в моем файле TXT, в JList.Комментированные строки, которые охватывают JList, не работают.Есть идеи?

Ответы [ 3 ]

6 голосов
/ 09 мая 2011

JList не создается, потому что вы явно установили его в null:

JList JList1 = null; // not initialized

Поэтому, пытаясь установить модель, я предполагаю, что вы получаете NullPointerException в этой строке:

JList1.setModel(lista); // NPE here

Вам нужно создать экземпляр JList и установить для него модель следующим образом:

JList jList1 = new JList();
jList1.setModel(lista);
1 голос
/ 09 мая 2011

Вы никогда не создаете новый экземпляр JList, которому присвоено JList1, но вы пытаетесь вызвать метод для этой переменной и, скорее всего, получите NullPointerException.

вместоприсвоение нуля JList1, назначение нового экземпляра.

1 голос
/ 09 мая 2011

Если вы правильно составите JList через

JList JList1 = new JList();

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

...