无法从TXT文件填充JList

Sam*_*Sam 2 java swing file jlist

这是我的工作代码,它读取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();
            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我想将我的TXT文件中的数据加载到JList.包含它的注释行JList不起作用.有任何想法吗?

jan*_*ink 6

JList不会被实例化,因为你明确地将其设置为空:

JList JList1 = null; // not initialized
Run Code Online (Sandbox Code Playgroud)

因此,当我尝试将模型设置为它时,我假设你得到了NullPointerException这一行:

JList1.setModel(lista); // NPE here
Run Code Online (Sandbox Code Playgroud)

您需要实例化JList并将模型设置为它,如下所示:

JList jList1 = new JList();
jList1.setModel(lista);
Run Code Online (Sandbox Code Playgroud)