鼠标点击2d阵列注册

时间:2012-04-26 18:07:50

标签: java arrays memory mouse boolean

嘿嘿所有人我都在制作一个记忆游戏,它是一块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");
    }
    }

2 个答案:

答案 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;
    }
}