-6

私はここにこのコードを持っています:

if ( event.getSource() == Square0 ) 
        {

            if ( PlayerOneTurn == true ) Square0.setBackground(Color.red);
            if ( PlayerOneTurn == true ) PlayerOneTurn = false ;

            if ( PlayerOneTurn == false ) Square0.setBackground(Color.blue) ;

        }

はっきりしない場合は、背景を赤にし、PlayerOneTurnの状態をfalseに変更したいので、もう一度クリックすると青に変わります。動作if ( PlayerOneTurn == true ) PlayerOneTurn = false ;しますが、変数の値は変更されていないようです。私は完全に間違ったステートメントを使用していますか、それとも何かを見逃していますか?

4

4 に答える 4

1

色を赤に変更し、最初のステートメントでif色を青に戻し、次のように変更してコードを変更しますififif-else

if ( PlayerOneTurn == true ) 
{
     Square0.setBackground(Color.red);
     PlayerOneTurn = false;
}
else
{
     Square0.setBackground(Color.blue) ;
     PlayerOneTurn = true;
}
于 2013-03-07T12:00:33.483 に答える
1

else ifおよび類似の構造を使用します。

3 行目の値を上書きしますPlayerOneTurn

また、ビジュアルを変更するときは、必ず再描画をトリガーしてください。

于 2013-03-07T11:59:39.473 に答える
0

else if を使用する

if (PlayerOneTurn) {
 Square0.setBackground(Color.red);
PlayerOneTurn = false;
}
else
{
 Square0.setBackground(Color.blue) 
}
于 2013-03-07T12:01:10.300 に答える
0

現在、コードは色を赤に設定PlayerOneTurnしてから false に設定し、次に色を再び青に設定してPlayerOneTurnいます。

あなたが欲しいのは

if ( event.getSource() == Square0 ) {

        if ( PlayerOneTurn == true ) {
            Square0.setBackground(Color.red);
            PlayerOneTurn = false ;
        } else {
            Square0.setBackground(Color.blue) ;
            PlayerOneTurn = true;
        }
    }

または、 booleans に関するより慣用的な :

if ( event.getSource() == Square0 ) {

        if ( PlayerOneTurn ) {
            Square0.setBackground(Color.red);
        } else {
            Square0.setBackground(Color.blue) ;
        }

        PlayerOneTurn = !PlayerOneTurn;  // True becomes false and false becomes true
    }
于 2013-03-07T12:03:26.060 に答える