如何用两个键盘键终止java程序?
我正在开发一个关于国家时间的项目。我希望在按住Ctrl+X键时,主类结束,同时不断显示时间。我使用了JFrame。当我只按一个键时,程序终止。但我不能用两把钥匙解决这个问题。我在这里找到了一些解决办法。 按下的代码和主类如下所示。这样程序就不会停止 键代码:如何用两个键盘键终止java程序?,java,swing,jframe,Java,Swing,Jframe,我正在开发一个关于国家时间的项目。我希望在按住Ctrl+X键时,主类结束,同时不断显示时间。我使用了JFrame。当我只按一个键时,程序终止。但我不能用两把钥匙解决这个问题。我在这里找到了一些解决办法。 按下的代码和主类如下所示。这样程序就不会停止 键代码: public void keyPressed(KeyEvent e) { System.out.println("Key Pressed " + KeyEvent.getKeyText(e.getKey
public void keyPressed(KeyEvent e) {
System.out.println("Key Pressed " + KeyEvent.getKeyText(e.getKeyCode()) );
if("Right".equals(KeyEvent.getKeyText(e.getKeyCode())))
System.out.println("Right Button Detected");
if(e.getKeyCode()==KeyEvent.VK_CONTROL && e.getKeyCode()==KeyEvent.VK_X);
System.exit(0);
}
public class Main {
public static void main(String[] args) {
System.out.println("You enter CTRL X to exit the program.");
MyKeyListener klavye = new MyKeyListener();
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addKeyListener(klavye);
frame.setVisible(true);
}
主代码:
public void keyPressed(KeyEvent e) {
System.out.println("Key Pressed " + KeyEvent.getKeyText(e.getKeyCode()) );
if("Right".equals(KeyEvent.getKeyText(e.getKeyCode())))
System.out.println("Right Button Detected");
if(e.getKeyCode()==KeyEvent.VK_CONTROL && e.getKeyCode()==KeyEvent.VK_X);
System.exit(0);
}
public class Main {
public static void main(String[] args) {
System.out.println("You enter CTRL X to exit the program.");
MyKeyListener klavye = new MyKeyListener();
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addKeyListener(klavye);
frame.setVisible(true);
}
我不知道这是否适用于您:
public void keyPressed(KeyEvent kevt) {
if(kevt.getKeyChar()=='X') {
if(kevt.isAltDown())
//Code if Alt+x pressed
if(kevt.isControlDown())
//Code if Ctrl+x pressed
if(kevt.isShiftDown())
//Code if Shift+x pressed
if(kevt.isAltDown()&&kevt.isControlDown()&&(!kevt.isShiftDown()))
//Code if Alt+Ctrl+x pressed
if(kevt.isAltDown()&&kevt.isShiftDown()&&(!kevt.isControlDown()))
//Code if Alt+Shift+x pressed
if(!(kevt.isAltDown())&&kevt.isControlDown()&&(kevt.isShiftDown()))
//Code if Shift+Ctrl+x pressed
if(kevt.isAltDown()&&kevt.isControlDown()&&kevt.isShiftDown())
//Code if Alt+Ctrl+Shift+x pressed
}
我认为这段代码应该很容易理解,请看一看
使用的答案,我用以下代码解决了我的问题:
@Override
public void keyPressed(KeyEvent e) {
if (e.isControlDown()){
System.out.println("PRESSED CTRL.");
}
if (e.getKeyCode()==KeyEvent.VK_X){
System.out.println("PRESSED X.");
}
if (e.isControlDown() && e.getKeyCode()==KeyEvent.VK_X){
System.out.println("PRESSED BOTH.");
System.exit(0);
}
}