簡體   English   中英

無法從TXT文件填充JList

[英]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容器中。

您永遠不會創建一個與JList1JList的新實例,但是您嘗試在該變量上調用方法,並且很可能會獲得NullPointerException

而不是為JList1分配null, JList1分配一個新實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM