在JDialog Box上禁用Escape键

Uda*_*ara 2 java swing jdialog joptionpane

我是java的初学者.

我在JDialog框上创建,必须等待回复

因为下面的代码是写的

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);
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当显示此对话框时,用户可以通过按退出键关闭此对话框现在我想要在按下退出键时停止对话框关闭.谁能帮我?

我已经参考以下链接,这对我来说并不完整

JDialog:如何禁用我的模态对话框的ESC键?

Uda*_*ara 5

我找到了解决上述问题的完美解决方案.

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

 jDialog.setFocusable(true);
Run Code Online (Sandbox Code Playgroud)

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

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