2010-09-19 26 views
1

我使用的Swing做一個簡單的GUI,但是當我添加更改偵聽到JSlider的,我得到以下運行時錯誤:的Java Swing JSlider的addChangeListener錯誤

Exception in thread "main" java.lang.NullPointerException 
     at XMovePanel.<init>(XMovePanel.java:15) 

我的代碼如下:

public class XMovePanel extends JPanel 
{ 
    JSlider xCoord; 
    private GUIApp d; 
    private XMoveListener xmove; 

    public XMovePanel(GUIApp d) 
    { 
    this.d = d; 
    xmove = new XMoveListener(); 

    // Error occurs here: 
    xCoord.addChangeListener(xmove); 

     // Settings for the slider 
    private class XMoveListener implements ChangeListener{ 
@Override 
     public void stateChanged(ChangeEvent event){ 

     // Change listener does stuff on action here 

但我不知道爲什麼我會添加更改偵聽器時出現錯誤。我究竟做錯了什麼?

回答

1

它看起來像xCoord爲空;試試這個來代替:

JSlider xCoord = new JSlider(); 

附錄:因爲xCoord是一個實例變量,是指以引用JSliderJLS 4.12.5 Initial Values of Variables規定「的默認值是null。」試圖在空引用上調用方法會拋出NullPointerException

+0

謝謝,愚蠢的我,我看到我試圖添加偵聽器*之前*我做了JSlider – 2010-09-19 04:50:29

+0

我做了同樣的事情。至少Java拋出一個異常,而不是靜靜地解引用內存地址零! – trashgod 2010-09-19 05:16:42