2010-07-16 34 views
2

好吧,所以我試圖從列表中放入一個數組中輸出當前字符串... 但是,當我點擊列表時,我得到一個NullPointerException ...:\JLIST上的Java空指針異常

幫助? :)

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 2010-07-16 18:49:28

回答

5

改變這一行:

JList list = new JList(listModel); 

進入這一行:

list = new JList(listModel); 

你在你的構造函數創建一個局部變量list,從而隱藏類的list領域。所以字段lisTry.list保留爲空,因此NullPointerException

+0

返回數組中的數字不是名稱:\ – nn2 2010-07-16 18:58:07

+1

是的,因爲你調用getSelectedIndex(),它返回索引。請參閱Java API文檔。當你想查看列表項文本本身時,請調用getSelectedValue()。 – haffax 2010-07-16 19:00:38