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

Java检查是否按下了控制键

袁卓
2023-03-14

我有一个Java函数,我想在其中测试控制键是否被按住。我该怎么做?

编辑:我正在使用摆动作为gui。

共有3个答案

邹书
2023-03-14

我找到了一个解决我的问题的解决方案:我声明一个全局变量

boolean controlStatus=false;

然后在事件中键按下在j文本字段上:

if(evt.getKeyCode()==KeyEvent.VK_CONTROL)
      controlStatus=true;

如果密钥已发布:

if(evt.getKeyCode()==KeyEvent.VK_CONTROL)
      controlStatus=false;

然后,我可以访问全局变量来检查控制键是否被按住。

毛峻
2023-03-14

上面的代码只有在唯一按下的是控制键时才有效。如果它们有ctrl并且其他按钮被意外按下(可能),它就不会捕获。

你可以只检查ctrl键

// Are just the CTRL switches left on
if(evt.getModifiers() == InputEvent.CTRL_MASK) {
    System.out.println("just the control key is pressed");
}

模拟按下的多个键时,使用或位运算符。要模拟同时按住左键和ctrl键,请查看以下内容。

// Turn on all leftButton and CTRL switches
int desiredKey = InputEvent.BUTTON1_MASK | InputEvent.CTRL_MASK;  

检查ctrl键是否关闭时,您可以执行此操作

// If we turn off all switches not belonging to CTRL, are all the CTRL switches left on
if((evt.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK) {
    System.out.println("Control Key is pressed and perhaps other keys as well");
}

您还可以检查是否同时按下了左键和ctrl键

// If we turn off all switches not belonging to leftButton or CTRL, are all the leftButton and CTRL switches left on
if((evt.getModifiers() & desiredKey) == desiredKey) {
    System.out.println("left button and control keys are pressed and perhaps others as well");
}

假设你有这个:

A | B

你应该这样想。A有一个控制面板,上面有一堆开关。B还有一个控制面板,上面有一堆开关。“|B“是执行确保所有 B 的开关都打开所需的最少工作。

假设你有这个:

A & B

的工作"

高嘉树
2023-03-14

使用“是控制下来()”布尔值:

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

  • 问题内容: 我是Java的初学者,一直在研究如何检测用户是否按下了某个键(例如箭头键)。显然,有很多方法可以做到这一点,我发现此方法应该对我有用: 问题是我不知道什么是KeyEvent。 当我调用该方法并给我举个例子时,谁能告诉我在括号中加什么? PS:不要把我发送到其他站点,我可能已经看过了,他们只是让我更加困惑… 问题答案: public class KeyEvent extends Inpu

  • 问题内容: 有没有一种方法可以检测JavaScript中的鼠标按钮当前是否处于按下状态? 我知道“ mousedown”事件,但这不是我所需要的。按下鼠标按钮后的一段时间,我希望能够检测它是否仍被按下。 这可能吗? 问题答案: 关于Pax的解决方案:如果用户有意或无意地单击了多个按钮,则该按钮将不起作用。不要问我我怎么知道:-(。 正确的代码应如下所示: 通过这样的测试: 如果您想知道按下了什么按

  • 我知道并使用了很多绑定的语法,但是我怎么能直接检查事件对象并提取被按下的字母,例如'c'和修饰词,例如'Control'和'Alt'? 我试过这个 偷到Python和Tkinter编程,但它没有显示我正在按的最终修饰符

  • 我希望我的程序只在所有按钮都被释放时发送0。现在,当我释放按钮时,代码会发送0,但如果我按住按钮并释放其中一个按钮,它会发送0,但我不希望它这样做,我只希望当所有按钮都被释放时。谢谢

  • 问题内容: 我正在使用Qt Designer构建UI,并且我希望按钮使用不同的修饰符执行不同的操作。因此,我认为我可以调用具有动态字符串属性的函数,这些函数将根据修饰符执行操作。 如果有人知道更简单的方法,我将不胜感激。 问题答案: 看起来您需要做的就是检查按钮处理程序中的keyboardModifiers,并根据需要选择其他操作。可以对各种修饰符进行“或”运算以检查多键组合: PyQt5 : P