无法从 TXT 文件填充 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();
            }
        }
    }
}

问题是我想将TXT文件中的数据加载到JList。涉及JList的注释行不起作用。有什么想法吗?

未实例化JList,因为您将其显式设置为 null:

JList JList1 = null; // not initialized

因此,当尝试将模型设置为它时,我假设您在以下行上得到一个NullPointerException

JList1.setModel(lista); // NPE here

您需要实例化JList并像这样设置模型:

JList jList1 = new JList();
jList1.setModel(lista);

如果您通过以下方式正确构造 JList

JList JList1 = new JList();

您可以取消注释所有行,它将正常工作。当然,您必须将此列表添加到 swing 容器中。

您永远不会创建分配给JList1JList的新实例,但您正在尝试对该变量调用方法,并且很可能会得到NullPointerException

不是将 null 分配给JList1,而是分配一个新实例。

相关内容

  • 没有找到相关文章