-3
   @Override
public void actionPerformed(ActionEvent event){
    JButton current;
    int turn=0;
    for(int i=0; i< buttons.length;i++){ 
        for(int j =0; j<buttons.length; j++){
            while(event.getSource().equals(buttons[i][j])){
            if(turn==0){
                current=buttons[i][j];
                current.setText("X");//current sets the text i,j to x.
                turn++;
                }
            else if(turn==1){
            current=buttons[i][j];
            current.setText("O");
            turn--;

                }
            }
        }//end j
    }//end i
}//end actionperformed.

さて、私はxとoの間でターンをしようとしているので、このメソッドは実行されるアクションですが、何らかの理由でプログラムを実行すると、ボタンをクリックした時点で常にフリーズします. whileループで入れ子になったforループ(実行方法が完全にはわかりません)を台無しにしたと思います。

4

2 に答える 2

0

水平方向と垂直方向に使用してbuttons.lengthいますが、ボタンの数が列/行の数と異なります。実際、この数は列数に行数を掛けたものです。この数値で sqrt を使用してみてください。

また、整数変数の代わりにturnブール値を使用し、各ターンの後に次のように記述しますturn = !turn

編集:さらに、なぜあなたがを使用しているのかわかりませんwhile

于 2013-07-26T16:39:15.283 に答える