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);
        }
    }
}

値を保持できる名前はわずかしかありません。ActionEventnull に設定できる名前は、"e" という名前と "gB" という名前の配列だけです。

これは、ソースを定義せずにカスタム ActionEvent をスローしたか、配列 gB を初期化しなかったことを意味します。

ピースを動かしたい場合は、アクション ハンドラーで "i" の値を出力するだけでなく、それ以上のことを行うことも役立つでしょう。しかし、あなたの努力はまだそこまで進んでいないと思います。

于 2012-05-09T22:44:23.897 に答える