董事会没有做出一块动作

时间:2012-05-09 22:12:42

标签: java swing jbutton

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

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)

1 个答案:

答案 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”的值可能也会有所帮助;但是,我猜你还没有做到这一点。