java - 禁用 JDialog Box 上的 Escape 键

标签 java swing joptionpane jdialog

我是java初学者。

我已经在 J​​Dialog 上创建,它必须等待回复

为此编写以下代码

final Object[] options = {"Yes!! I am woking", "No!! was not working"};

final JOptionPane optionPane =
        new JOptionPane("IT look like are you busy  \n with Something else!!! \n Are you working?",
                JOptionPane.QUESTION_MESSAGE,
                JOptionPane.YES_NO_OPTION, null, options);

JDialog dialog = optionPane.createDialog("Are you working?");
dialog.setAlwaysOnTop(true);
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialog.toFront();
dialog.setVisible(true);

现在的问题是,当显示此对话框时,用户可以通过按转义键关闭此对话框,现在我想在按转义键时停止对话框关闭。有人可以帮助我吗?

我引用了以下链接,该链接对我来说并不完整

JDialog: How to disable the ESC key of my Modal dialog?

最佳答案

我已经找到了解决上述问题的完美解决方案。

首先我们必须设置 JDialog 可聚焦:

 jDialog.setFocusable(true);

然后应用以下代码来禁用转义键:

    jDialog.addKeyListener(new KeyListener() {
         @Override
         public void keyPressed(KeyEvent e) {
           // Catch ESC key stroke.
           if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
              e.consume();
           }
         }
        });

关于java - 禁用 JDialog Box 上的 Escape 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23285288/

相关文章:

java - 为什么哈希函数不使用随机性?

java - 为什么没有 “while(true)” 的 “Thread.sleep” 在 Linux 上会导致 100% 的 CPU 使用率,但在 Windows 上却不会?

java - 在java中留下一个空白的jtextfield字段

java - 限制 PLAIN_MESSAGE JOptionPane 中输入文本的大小

java - 如何配置 Hibernate 5 强制 Mysql 使用 Innodb 引擎创建表?

java - 从左到右布局标签

java - propertyChangeListener链式 react ,导致溢出

java - 使用 JOptionPane 进行提醒

java - 如何使用 BufferedReader 在 JOptionPane 中打印多行?

java - 我想从 Firebase 获取产品 ID