我正在使用Swing制作简单的GUI,但是当我向JSlider添加更改侦听器时,出现以下运行时错误:

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


但是我不知道为什么在添加更改侦听器时会出现错误。我究竟做错了什么?

最佳答案

看来xCoord为空;试试这个代替:

JSlider xCoord = new JSlider();


附录:因为xCoord是实例变量,并且它是要引用JSlider,所以JLS 4.12.5 Initial Values of Variables指定“默认值为null”。尝试在空引用上调用方法会抛出NullPointerException

10-07 13:22