2010-07-16 6 views
2

OK 이제 목록에있는 배열의 현재 문자열을 출력하려고합니다 ... 그러나 목록을 클릭하면 NullPointerException이 발생합니다. : \JLIST의 Java Null 포인터 예외

도움 말? :)

import java.applet.Applet; 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 


public class lisTry extends JApplet implements MouseListener { 

public static String newline; 
public static JList list; 

    public void init() { 

      DefaultListModel listModel = new DefaultListModel(); 
      listModel.addElement("Debbie Scott"); 
      listModel.addElement("Scott Hommel"); 
      listModel.addElement("Alan Sommerer"); 

      JList list = new JList(listModel); 


     this.getContentPane().add(list); 

     list.addMouseListener(this); 

     String newline = "\n"; 

     list.setVisible(true); 

    } 

    public void mousePressed(MouseEvent e) { } 

    public void mouseReleased(MouseEvent e) { 
     int index = list.getSelectedIndex(); 
     System.out.println("You clicked on: " + index); 
    } 

    public void mouseEntered(MouseEvent e) { } 

    public void mouseExited(MouseEvent e) { } 

    public void mouseClicked(MouseEvent e) { } 

    public void paint(Graphics g) { 

    } 
} 

고마워요.

+2

참고 : '>'는 인용구를 표시하는 데 사용됩니다. 코드 공간을 4 칸 들여서 들여 쓰기 할 수 있습니다. (이 변경을 만들었습니다.) – BoltClock

답변

5

변경이 라인 :이 라인에

JList list = new JList(listModel); 

:

list = new JList(listModel); 

당신은 당신의 생성자에서 지역 변수 list를 생성하고, 따라서 클래스의 list 필드를 숨길 수 있습니다. 따라서 lisTry.list 필드는 null이되므로 NullPointerException입니다.

+0

배열의 번호가 아닌 이름을 반환합니다 : \ – nn2

+1

예, 인덱스를 반환하는 getSelectedIndex()를 호출했기 때문입니다. Java API 문서를 참조하십시오. 목록 항목 텍스트 자체를 보려면 대신 getSelectedValue()를 호출하십시오. – haffax

관련 문제