2011-05-09 1 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

+0

감사합니다. jzd, 다음에 할 것입니다. :) – Sam

+0

'jList1.setModel (lista);에서 NullPointerException을 계속받습니다. – Sam

답변

1

당신이

JList JList1 = new JList(); 

를 통해 올바르게 JList의를 constract 경우에 당신은 모든 라인의 주석을 해제 할 수 있고 그것을 잘 작동합니다. 물론이 목록을 스윙 컨테이너에 추가해야합니다.

+0

하워드, 고맙습니다. – Sam

+0

목록을 Swing 컨테이너에 추가하는 방법을 알고 있습니까? 'jList1.setModel (lista);에 NullPointerException이 계속 발생합니다. – Sam

+0

@Sam이 튜토리얼 [here] (http://download.oracle.com/javase/tutorial/uiswing/components/frame.html)과 특히 JList에 대한 [here] (http://download.oracle.com/javase/tutorial/uiswing/components/list.html). – Howard

1

JList1으로 지정된 JList의 새 인스턴스를 만들지는 못했지만 해당 변수에 대한 메서드를 호출하려고 시도하고 있으며 대체로 NullPointerException이 될 가능성이 큽니다.

JList1에 null을 할당하는 대신 새 인스턴스를 할당하십시오.

JList1.setModel(lista); // NPE here 

: 그것에 모델을 설정하려고 할 때

JList JList1 = null; // not initialized 

그래서 나는 당신이이 라인에 NullPointerException을 얻을 가정 : 당신이 명시 적으로 널 (null)로 설정 때문에 JList

+0

감사합니다. 그걸 시도 해봐! – Sam

6

인스턴스화되지 않는다 JList을 인스턴스화하고 다음과 같이 모델을 설정해야합니다.

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

감사합니다. 예, NullPointerException이 발생했습니다. – Sam