我正在尝试将按钮移动到另一个地方,我使用了这段代码:
public void actionPerformed(ActionEvent e)
{
for(int i = 0; i<=29; i++)
{
if(e.getSource() == gB[i])
{
System.out.println(i);
}
}
}
这是画板
public void drawBoard()
{
JPanel gboard = new JPanel();
for(int i = 0; i < 30; i++)
{
gboard.add(gB[i]);
gB[i].setText(Integer.toString(gB[i].getPieceValue()));
}
我认为这是错误的。任何人都有任何想法?我无法让球员们进入下一个位置。
由于
错误是:(全部为红色)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Controller.actionPerformed(Controller.java:22)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
答案 0 :(得分:2)
public void actionPerformed(ActionEvent e)
{
for(int i = 0; i<=29; i++)
{
if(e.getSource() == gB[i])
{
System.out.println(i);
}
}
}
只有几个可以保存值的名称。名为“e”的ActionEvent
和名为“gB”的数组是唯一可以设置为null的名称。
这意味着要么在没有定义源的情况下抛出自定义ActionEvent,要么没有初始化数组gB。
如果你想让你的作品移动,那么在动作处理程序中打印输出“i”的值可能也会有所帮助;但是,我猜你还没有做到这一点。