【问题标题】:How do I detect if a button is clicked while holding shift in Java Eclipse AWT?java - 如何在Java Eclipse AWT中按住shift时检测是否单击了按钮?
【发布时间】:2015-12-05 22:35:37
【问题描述】:

我正在尝试用 Java 制作 X 和 O 游戏,但我需要右键单击才能算作 X,然后左击才能算作 O

【问题讨论】:

  • 首先,让我为您不得不使用 AWT 道歉,这很糟糕。其次,创建MouseListener 的实现,它覆盖mouseClicked(MouseEvent e) 方法,并询问e.getButton() 以查看它是用于左键单击的MouseEvent.BUTTON1 还是用于右键单击的MouseEvent.BUTTON2
  • 除了上面的评论,我建议创建一个数组来存储所有按下的按钮。这样您就可以运行类似于 if(keys[Key.SHIFT] == true) 的检查。
  • 标题似乎与问题无关。问你问怎么区分鼠标左右键,还是问怎么判断Shift键是否按下?

标签: java eclipse awt


【解决方案1】:

好的,首先您需要实现MouseListener 接口。您可以让您的主类实现MouseListener,或者通过addMouseListener() 将通用实现附加到JPanel。后一种方法描述如下:

public class MyPanel extends JPanel {

    public MyPanel() {
        // ...
        this.addMouseListener(new MouseListener() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (e.getButton() == MouseEvent.BUTTON1) {
                    // Handle left-click
                } else if (e.getButton() == MouseEvent.BUTTON2) {
                    // Handle right-click
                }
            }
        });
    }
}

您还可以检查e.isShiftDown() 以查看是否按住了 Shift 键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 2014-04-09
    相关资源
    最近更新 更多