gpt4 book ai didi

java - Swing:按下 ESC 键时如何关闭对话框?

转载 作者:IT老高 更新时间:2023-10-28 20:21:47 25 4
gpt4 key购买 nike

使用 Swing 进行 GUI 开发。

我有一个自定义对话框,用于选择要在我的应用程序中打开的文件;它的类扩展了 javax.swing.JDialog 并包含一个 JFileChooser 以及其他组件,它可以切换为显示或隐藏。

JFileChooser 组件已经自行处理了 ESC 键:当显示文件选择器(嵌入在我的对话框中)并且我按下 ESC 时,文件选择器会自行隐藏。

现在我希望我的对话框也这样做:当我按下 ESC 时,我希望对话框关闭。请注意,当显示嵌入式文件选择器时,ESC 键应该只隐藏它。

有什么想法吗?

最佳答案

您可以使用以下代码段。这更好,因为 rootPane 将从对话框中的任何组件获取事件。如果需要,可以将 setVisible(false) 替换为 dispose()。

public static void addEscapeListener(final JDialog dialog) {
ActionListener escListener = new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
};

dialog.getRootPane().registerKeyboardAction(escListener,
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
JComponent.WHEN_IN_FOCUSED_WINDOW);

}

关于java - Swing:按下 ESC 键时如何关闭对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/642925/

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