2016-12-30 6 views
0

DrJavaを使用してプログラミングしています。このコードはすべて、GUIで実行されるアクションの項目に該当します。e.getSourceチェッカーゲームのボタンが機能しません。 GUI

2つのe.getSourceボタンを除いて、ここのすべてが正しく機能しています。

2つのステートメントはif(e.getSource()== b[a-9])とif(e.getSource()== b[a-7])です。

すべてのボタンにアクションリスナーを追加しました。

ボタンをクリックすると、何も実行されていません。

私はSystem.out.printlnを使用して動作するかどうか確認しましたが、一度クリックすると画面に表示されません。

これは明らかに彼らが働いていないことを意味しますが、なぜですか?コード全体を試してみたいのであれば、尋ねてみてください。これは学年11のCPTです。

if(player==1) 
{ 
    for(int a=41; a<64; a++) 
    { 
     if (e.getSource()==b[a]) 
     { 
      board(); 
      b[a].setBackground(new Color(0,255,0)); 
      if(!b[a].getText().equals(b[a-9].getText())&&!b[a].getText().equals(b[a-7].getText())) 
      { 
       b[a-9].setBackground(new Color(0,255,0)); 
       b[a-7].setBackground(new Color(0,255,0)); 

       //THIS IS NOT WORKING____________________________________ 
       if (e.getSource()== b[a-9]) 
       { 
        System.out.println("NOT WORKING"); 
        b[a-9].setText(piece1); 
        b[a].setText(""); 
        board(); 
        player2(); 
        player=2; 
       } 

       if (e.getSource()== b[a-7]) 
       { 
        System.out.println("NOT WORKING"); 
        b[a-7].setText(piece1); 
        b[a].setText(""); 
        board(); 
        player2(); 
        player=2; 
       } 
       //___________________________________________________________  
       if(e.getSource()==b[47]) 
       { 
        board(); 
        b[47].setBackground(new Color(0,255,0)); 
        if(!b[47].getText().equals(b[47-9].getText())) 
        { 
         b[47-9].setBackground(new Color(0,255,0)); 
        } 
       } 
       if(e.getSource()==b[48]) 
       { 
        board(); 
        b[48].setBackground(new Color(0,255,0)); 
        if(!b[48].getText().equals(b[48-7].getText())) 
        { 
         b[48-9].setBackground(new Color(0,255,0)); 
        } 
       } 
      } 
     } 
    }  
} 

ありがとうございます。その条件が真である場合は、このチェック持っその後

​​

+0

最小限の実行可能な例を提供する必要があります。あなたのプリントが証明していることは、イベントのソースがさまざまなb []要素によって参照されるものと同じではなく、リスナを設定してb []を初期化するコードがないことです。 –

+0

コード全体を送信できますそれが助けになるなら? – Adenloolfly

答えて

0

まずあなたは、このチェックを持っている

if (e.getSource()== b[a-9]) 

まあ真なることはありませんので、同じボタンでき等しくないボタン(a)と(a-9)を同時に行う。

(a-7)の条件と同じです。それは同時に(a)と(a-7)に等しくなることはありません。

+0

オハイオ州大丈夫です。だから私は(e.getSource()== b [a])から取り出し、それを(int a = 41; a <64; a ++)ループに入れました。これはボタンを機能させますが、私が望むやり方ではありません。私はそれを(e.getSource()== b [a])の中に入れて、まだ動作させる方法がありますか? – Adenloolfly

関連する問題