嘿嘿所有人我都在制作一个记忆游戏,它是一块4x4的棋盘,然后你点击棋盘以显示下面的内容,你必须找到相应的图片。我在点击鼠标时遇到了麻烦,并将它们分配给了guess1和guess2。
Joption面板是我如何测试,看看是否猜测1和猜测2注册。每次guess1工作正常,但我不知道如何进行第二次猜测 这是我的尝试。
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 :(得分:0)
while(mouseClicked)
这看起来很糟糕。它要么意味着您要么不释放UI线程以获得第二次单击,要么您在非UI线程中调用图形操作。答案 1 :(得分:0)
试试这个
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;
}
}