如何使用mouseClicked()

时间:2019-05-12 03:19:26

标签: java

因此,如果您还没有看过SlitherLink游戏,请进行查找。无论如何,说我有一个点状网格。如果我单击2个点之间,则就像SLitherLink游戏一样,它在2个点之间绘制一条线。问题是,我试图做到这一点,因此当您使用mouseClicked方法时,它会获得单击的坐标,并查看应绘制的2点之间的哪条线。即水平或垂直。

这是我的mouseClicked()方法:

public void mouseExited(MouseEvent e) {
for (int i = 0;  i < game.size() + 1; i++) {
            for (int j = 0;  j < game.size() + 1; j++) {
                if (e.getX() >= i * 100 +10 && e.getX() < i+1 * 100 +10){
                    horizontalClick(i * 100 + 10,j * 100 + 10);
                }
            }

        }

此代码表示,如果单击位于循环中的第一个点和第二个点之间,请绘制水平线。我知道这是错误的,但这是我尝试过的。

public void horizontalClick(int r, int c)
    {
        if ((r >= 0 && r < game.size()) && c >= 0 && c < game.size()) {
            sc.drawLine(r, c, r+1, c, Color.BLACK);
        }
    } 

我正在使用SimpleCanvas类在窗口上绘制。

所以从根本上说,由于单击永远都不是精确的,我如何说出单击鼠标的位置才能找到最近的点,并查看它应该是该点的垂直线还是水平线。

谢谢

0 个答案:

没有答案