2012-04-26 9 views
0

皆さん、私は4x4ボードで何が起きているのかを明らかにするためにタイルをクリックし、対応する画像を見つけなければなりません。マウスをクリックしてguess1とguess2に割り当てるというロジックに問題があります。マウスクリック2dアレイ登録

Joptionパネルは、推測1と推測2のレジスタを調べる方法です。 guess1がうまく動作するたびに、2番目の推測作業を行う方法がわからない ここは私の試みです。

public void displayHit(Graphics g) 
{ 
    //earlier on in the code mouseClicked provides the x and y indexes for the place where you click 
    if (mouseClicked) 
    { 
     //method I coded to assign whereever you clicked on the 400x400 board to match the 4x4 array 
     centerClick(x1,y1); 
     guess1 = board[row][column]; 
     board[row][column] = board[x1][y1]; 
     guess1 = board[x1][y1]; 
     JOptionPane.showInputDialog(guess1 + "this is guess1"); 
     guess2 = -1; 
     setColor(g); 
     centerHit(xMouse, yMouse); 
     g.fillOval(xMouse, yMouse, 40, 40); 
     mouseClicked = false; 

    if ((guess2 == -1) && (mouseClicked)) 
    { 
     centerClick(x1,y1); 
     guess2 = board[row][column]; 
     board[row][column] = board[x1][y1]; 
     guess2 = board[x1][y1]; 
     JOptionPane.showInputDialog(guess2 + "this is guess2"); 
    } 
    } 

答えて

0

は、else文は、私はちょうどいじりして、それをバックに変更するのを忘れた場合、私は元々使っていたこの

boolean guess2Flag;  
if (mouseClicked) 
{ 

    if(!guess2Flag) 
    { 
    centerClick(x1,y1); 
    guess1 = board[row][column]; 
    board[row][column] = board[x1][y1]; 
    guess1 = board[x1][y1]; 
    JOptionPane.showInputDialog(guess1 + "this is guess1"); 
    guess2Flag = true; 
    setColor(g); 
    centerHit(xMouse, yMouse); 
    g.fillOval(xMouse, yMouse, 40, 40); 
    mouseClicked = false; 
    } 

    else if (guess2Flag) 
    { 
    centerClick(x1,y1); 
    guess2 = board[row][column]; 
    board[row][column] = board[x1][y1]; 
    guess2 = board[x1][y1]; 
    JOptionPane.showInputDialog(guess2 + "this is guess2"); 
    guess2Flag = false; 
    mouseClicked = false; 
    } 
} 
+0

を更新しました。私はタイルをクリックすると「これは推測です1」と表示され、「これは推測2」の直後になりますので、毎回全部を実行していて分離していません。 – user1215307

+0

私も追加しなければならなかった mouseClicked = false; 次に、2番目のifステートメントに追加します。そのアドバイスをありがとう。私はintの代わりにブール値を使うべきだった – user1215307

+0

ええ、私はそれを忘れましたが、それは動作するはずです!問題が解決した場合は、正しいと思われる回答によって「チェックマーク」をクリックして回答を受け入れます。 –

0

しばらく(のmouseClicked)

これは悪いに見えます。これは、UIスレッドを解放して2回目のクリックを取得していないか、UI以外のスレッドでグラフィックス操作を呼び出していることを意味します。

+0

を試してみてください。私が遭遇してきた問題と同じ問題がまだ残っている – user1215307