【问题标题】:How to kill a program with esc or a button Java如何使用 esc 或按钮 Java 杀死程序
【发布时间】:2013-06-11 00:19:47
【问题描述】:

我希望我的程序运行,但是一旦按下 esc 退出程序。我能想到的唯一方法是做一个扫描仪并寻找下一行,但这会暂停整个程序。也许是一个关键的听众,但我如何让它不断检查?它是一个图形用户界面。任何帮助都会很棒!

static Scanner sc = new Scanner(System.in);

stop = sc.nextLine();

if (stop.equals(a)){
running = false;
}
else{
do program
}

【问题讨论】:

  • 对不起,我不知道我可以接受答案。我回去做了。感谢您的提醒。

标签: java swing exit


【解决方案1】:

如果你使用框架,你可以注册键。

myFrame.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
    KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "EXIT"); 
    myFrame.getRootPane().getActionMap().put("EXIT", new AbstractAction(){ 
        public void actionPerformed(ActionEvent e)
        {
            myFrame.dispose();
        }
    });

【讨论】:

【解决方案2】:

如果这是一个 UI,则不应维护任何可能阻塞事件调度线程的循环。

EDT 将向您的程序发送关键事件,如果您已注册通知,您可以对其进行响应。

我会避免使用KeyListener,因为它要求它注册的组件在响应之前获得焦点并获得键盘焦点。

相反,我会使用Key Bindings API

您可以将 Escape 键注册到主应用程序窗口(或子组件)或直接使用您用来关闭应用程序的JButton

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    相关资源
    最近更新 更多