在JButtons / JLabels上拖动

时间:2015-03-04 13:20:09

标签: java swing jlabel mousemotionlistener

我正在尝试制作游戏点,我已经找到了一种使用int[][]生成随机点的方法。我还创建了一种方法来删除点,如果它们彼此相邻并且在选择时具有相同的颜色。我的游戏区域是7乘7,并且填充了JButton s(也可能是JLabel s)。现在我需要找到一种方法来拖动几个点并选择它们,如果它们与初始点的颜色相同,但每当我尝试做类似的事情时,我总是最终选择初始点本身并发送每当我移动鼠标时按钮的坐标,或者在屏幕上选择指针的x和y值。

以下是相关代码:

for (int i = 0; i < 7; i++) {
    for (int j = 0; j < 7; j++) {
        final int finalJ = j;
        final int finalI = i;
        playField[i][j].addMouseMotionListener(new MouseMotionAdapter() {
            @Override
            public void mouseDragged(MouseEvent e) {
                try {
                    while (true) {
                        dotsController.beginZet(finalI, finalJ);
                    }
                } catch (DotsException e1) {
                    e1.printStackTrace();
                }
            }
        });
        playField[i][j].addMouseListener(new MouseAdapter() {
            @Override
            public void mouseReleased(MouseEvent e) {
                try {
                    dotsController.doeZet();
                } catch (DotsException e1) {
                    e1.printStackTrace();
                }
            }
        });
    }
}

0 个答案:

没有答案