[英]Can't populate a JList from a TXT File
這是我的工作代碼,它讀取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容器中。
您永遠不會創建一個與JList1
的JList
的新實例,但是您嘗試在該變量上調用方法,並且很可能會獲得NullPointerException
。
而不是為JList1
分配null, JList1
分配一個新實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.