如何用两个键盘键终止java程序?

如何用两个键盘键终止java程序?,java,swing,jframe,Java,Swing,Jframe,我正在开发一个关于国家时间的项目。我希望在按住Ctrl+X键时,主类结束,同时不断显示时间。我使用了JFrame。当我只按一个键时,程序终止。但我不能用两把钥匙解决这个问题。我在这里找到了一些解决办法。 按下的代码和主类如下所示。这样程序就不会停止 键代码: public void keyPressed(KeyEvent e) { System.out.println("Key Pressed " + KeyEvent.getKeyText(e.getKey

我正在开发一个关于国家时间的项目。我希望在按住Ctrl+X键时,主类结束,同时不断显示时间。我使用了JFrame。当我只按一个键时,程序终止。但我不能用两把钥匙解决这个问题。我在这里找到了一些解决办法。 按下的代码和主类如下所示。这样程序就不会停止

键代码:

 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);
        }
    }