我使用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
但我不知道为什么在添加更改侦听器时会出现错误。我做错了什么?
答案 0 :(得分:1)
看起来xCoord
为空;试试这个:
JSlider xCoord = new JSlider();
附录:由于xCoord
是一个实例变量,而它是为了引用JSlider
,JLS 4.12.5 Initial Values of Variables指定“默认值为null
。”尝试在空引用上调用方法会引发NullPointerException
。