2011-05-09 62 views
2

這裏是我工作的代碼讀取TXT文件,並將其顯示在控制檯:不能填充從一個TXT文件一個JList

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的註釋行不起作用。有任何想法嗎?

+2

確保您始終定義「不能正常工作」的含義,幷包含您所得到的任何異常或錯誤消息。 – jzd 2011-05-09 19:03:33

+0

謝謝jzd,下次我會這樣做。 :) – Sam 2011-05-09 19:04:56

+0

我一直在'jList1.setModel(lista);' – Sam 2011-05-09 19:15:30

回答

1

如果通過

JList JList1 = new JList(); 

正確建設工程JList中,你可以取消所有的行,它會正常工作。當然,你必須將這個列表添加到擺動容器中。

+0

謝謝霍華德,我會試試看! – Sam 2011-05-09 19:06:28

+0

你知道如何將列表添加到Swing容器嗎?我一直在'jList1.setModel(lista);' – Sam 2011-05-09 19:14:08

+0

@Sam上得到NullPointerException您可以在這裏找到教程[http://download.oracle.com/javase/tutorial/uiswing/components/frame.html],特別是JList的[這裏](http://download.oracle.com/javase/tutorial/uiswing/components/list.html)。 – Howard 2011-05-09 19:17:18

1

您永遠不會創建與JList1對齊的JList的新實例,但您正嘗試調用該變量的方法,並且最有可能獲得NullPointerException

而不是將空值分配給JList1,分配一個新的實例。

+0

謝謝jzd。要嘗試一下! – Sam 2011-05-09 19:08:09

6

JList不會被實例化,因爲你明確地將其設置爲空:

JList JList1 = null; // not initialized 

所以試圖將模型設置爲它,當我想你在這一行取得NullPointerException

JList1.setModel(lista); // NPE here 

您需要實例化JList並將其設置爲如下形式:

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

謝謝eQui。是的,我得到一個NullPointerException。 – Sam 2011-05-09 19:07:24