0

我正在尝试将按钮移动到另一个地方,我使用了以下代码:

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)
4

1 回答 1

2
public void actionPerformed(ActionEvent e)
{
    for(int i = 0; i<=29; i++)
    {
        if(e.getSource() == gB[i])
        {
            System.out.println(i);
        }
    }
}

只有几个名称可以保存一个值。命名为“ ActionEvente”和名为“gB”的数组是唯一可以设置为 null 的名称。

这意味着要么你在没有定义源的情况下抛出了一个自定义 ActionEvent,要么你没有初始化数组 gB。

如果你想让你的棋子移动,除了在动作处理程序中打印“i”的值之外,它可能还有助于做更多的事情;但是,我猜你的努力还没有那么远。

于 2012-05-09T22:44:23.897 回答