我正在使用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
。