Java Can';t从TXT文件填充JList
下面是我的工作代码,它读取TXT文件并在控制台中显示:Java Can';t从TXT文件填充JList,java,swing,file,jlist,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
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 JList1 = new JList();
您可以取消注释所有行,它将正常工作。当然,您必须将此列表添加到swing容器中。您永远不会创建一个新的
JList
实例,该实例被分配到JList1
,但是您试图对该变量调用一个方法,很可能会得到一个NullPointerException
不要将null分配给
JList1
,而是分配一个新实例。由于您显式地将JList
设置为null,因此不会实例化它:
JList JList1 = null; // not initialized
因此,当尝试将模型设置为它时,我假设您在这一行上得到一个NullPointerException
:
JList1.setModel(lista); // NPE here
您需要实例化JList
,并将模型设置为如下所示:
JList jList1 = new JList();
jList1.setModel(lista);
确保您始终定义“不工作”的含义,并包括您收到的任何异常或错误消息。谢谢jzd,我下次会这么做。:)我一直在
jList1.setModel(lista)上得到一个NullPointerException
您现在添加了行jList1=null代码>一定没有。谢谢霍华德,我要试试!您知道如何将列表添加到Swing容器中吗?我一直在jList1.setModel(lista)上得到一个NullPointerException
@Sam您可以找到教程,尤其是JList的教程。@Sam您添加了行jList1=null代码>不应该在那里。太好了!现在开始工作了!我会查看你的链接。非常感谢。谢谢你。是的,我得到了一个NullPointerException。