gpt4 book ai didi

java - 获取组合键

转载 作者:IT王子 更新时间:2023-10-29 00:53:08 25 4
gpt4 key购买 nike

如何获取键盘上的按键组合 E.G. (Ctrl+somekey, Alt+somekey) 与 Java?

我为键盘上的所有键使用 KeyEvent 监听器,MouseEvent 监听器。我可以使用该监听器捕获键盘上的所有按键事件。但是,我无法捕获组合键,例如 (Ctrl+Alt+Del)...等。

最佳答案

public void keyPressed(KeyEvent kevt) {
if(kevt.getKeyChar()=='c') {
if(kevt.isAltDown())
//Code if Alt+c pressed
if(kevt.isControlDown())
//Code if Ctrl+c pressed
if(kevt.isShiftDown())
//Code if Shift+c pressed
if(kevt.isAltDown()&&kevt.isControlDown()&&(!kevt.isShiftDown()))
//Code if Alt+Ctrl+c pressed
if(kevt.isAltDown()&&kevt.isShiftDown()&&(!kevt.isControlDown()))
//Code if Alt+Shift+c pressed
if(!(kevt.isAltDown())&&kevt.isControlDown()&&(kevt.isShiftDown()))
//Code if Shift+Ctrl+c pressed
if(kevt.isAltDown()&&kevt.isControlDown()&&kevt.isShiftDown())
//Code if Alt+Ctrl+Shift+c pressed
}

使用上面的代码,使用任意字符如果你想检查 Alt+C+E 是否被按下,请执行以下操作

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.swing.*;

public class Sample implements KeyListener {
private JTextField lbl=new JLabel("Hello");
private JPanel pnl=new JPanel(new BorderLayout());
private JFrame frm=new JFrame ("Sample");
int []arr;int i=0;

public Sample() {
pnl.add("North", lbl);
frm.setContentPane(pnl);
frm.pack();
frm.setVisible(true);
lbl.addKeyListener(this);
arr= new int[3];

public void keyPressed(KeyEvent key) {
arr[i]=key.getKeyCode();
i++;
if((arr[0]==VK_ALT||arr[1]==VK_ALT||arr[2]==VK_ALT)&& (arr[0]==VK_C||arr[1]==VK_C||arr[2]==VK_C)&&(arr[0]==VK_E||arr[1]==VK_E||arr[2]==VK_E)) {
//Code you want
}
}

public void keyReleased(KeyEvent evt) {
arr[i]=null;
}

public void keyTyped(KeyEvent kvt) {
}
}

}

关于java - 获取组合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com