当前位置: 首页 > 知识库问答 >
问题:

如何检查如果键按下时点击事件在java

白信鸿
2023-03-14

我想抓住点击事件在java当键按下(不是ctrl,或移位,或alt),或检查如果键"A"按击打键"D"按下。我怎么能这样做,就像方法是shiftdown一样?

共有3个答案

汪博艺
2023-03-14

我喜欢做的是使用一个布尔数组来存储当前按下的键,然后在需要时使用其他方法来访问它们。例如

Boolean[] keys = new Boolean[256];
Boolean mousePressed = false;
...
keyPressed(MouseEvent e) {
    keys[e.getKeyCode()] = true;
}
...
keyReleased (MouseEvent e) {
    keys[e.getKeyCode()] = false;
}
....
mousePressed (MouseEvent e) { mousePressed=true; }

然后,每当你需要看到它的组合键被按下,只要参考数组,看看该键当前是否为真。它同样适用于鼠标和按键侦听器。

督飞羽
2023-03-14

不确定这是否是你想要的。您可以使用java中的一些东西。awt。名为KeyEvent的事件包。

下面是一个完整的例子:

https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/events/KeyEventDemoProject/src/events/KeyEventDemo.java

将其复制到您自己的IDE并运行它

岑毅庵
2023-03-14

添加如下所示的鼠标侦听器:

component.addMouseListener(new MouseAdapter(){
  public void mousePressed(MouseEvent e){
    mouseDown = true;
  }
  public void mouseReleased(MouseEvent e){
    mouseDown = false;
  }
});

关键的监听器:

component.addKeyListener(new KeyAdapter(){
  public void keyPressed(KeyEvent e){
    if(mouseDown){
      System.out.println("the key was pressed while the mouse is down.");
    }
  }
});
 类似资料:
  • 当按钮单击时,是否有任何机制显式地触发按键事件。当我单击java UI中命名为“+”的按钮时,它将显式地触发“+”键按下事件。

  • 问题内容: 我怎么能确定 哪个 / / 下面的代码键被按下? 问题答案: 好吧,这仅适用于IE 8,因此无法在所有浏览器中使用。Microsoft实现了确定按下哪个(右/左)键的功能。 我也发现这篇关于浏览器中的按键,按键,按键事件的奇妙文章。

  • 问题内容: 我正在尝试编写一个分辨率选择对话框,该对话框在程序首次启动时会弹出。为避免使用户感到无聊,我想实现相当标准的功能,即可以通过选中复选框关闭该对话框,但在启动时按住alt键即可恢复该对话框。 不幸的是,没有明显的方法来询问java 当前 是否 正在按下 给定的键。您只能通过KeyListener进行注册,以获知新的按键操作,但是如果按键在应用程序启动之前启动,则无济于事。 问题答案:

  • 问题内容: 在Java中,我有一个程序需要连续检查用户是否按下了键。所以在伪代码中,像 提前致谢! 问题答案: 在Java中,你不检查是否有键被按下,而不是你听到秒。实现目标的正确方法是注册一个,并实现它以维持所需密钥的状态: 然后,您可以随时使用: 当然,您可以使用相同的方法来实现键映射及其包裹在状态中的状态。

  • 下面是.java文件中的代码

  • 好的,在这被标记为可能的重复之前,我已经尝试了以下代码: