Java 如何禁用对话框上的X?

Java 如何禁用对话框上的X?,java,swing,jdialog,Java,Swing,Jdialog,有没有办法禁用对话框上的所有X 我可以通过以下方式一次完成此任务: JOptionPane pane = new JOptionPane("Are you hungry?", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION); JDialog dialog = pane.createDialog("Title"); dialog.addWindowListener(new WindowAdapter() { public

有没有办法禁用对话框上的所有X

我可以通过以下方式一次完成此任务:

JOptionPane pane = new JOptionPane("Are you hungry?", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION);

JDialog dialog = pane.createDialog("Title"); 
dialog.addWindowListener(new WindowAdapter() {    
public void windowClosing(WindowEvent evt) {
    } }); 
dialog.setContentPane(pane);
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); 
dialog.pack();
但问题是,我必须将此应用于其他20-40个对话框,这将非常耗时

所以我想知道你怎么做一行代码使所有对话框(如下所示)上的字体变大,有没有一种方法可以禁用X功能

UIManager.put(“OptionPane.messageFont”, 新FontUIResource(新) 字体(“ARIAL”,字体粗体,30))


JDialog
方法
setDefaultCloseOperation
的工作原理与JFrame的类似:

)

也不会对所有帧执行此操作,它只会对其设置的实例执行此操作。如果要应用于所有对话框,需要执行以下操作之一:

  • 每次构造对话框时都调用此函数
  • 扩展JDialog并将其设置为默认值,然后使用该新类
  • 创建一个工厂方法,该方法将使用此默认集构造对话框。然后在需要新对话框时调用此方法

与其禁用控件,不如将其删除。用户不应该看到一个“X”按钮,然后让它的行为不符合他们的预期

见:

  • 对于单个对话框
  • 为以后的对话框提供提示

    • 为什么不创建一个自定义类来扩展JDialog设置,从而在构造函数中实现所需的关闭行为

      class NoCLoseDialog extends JDialog {
        NoCloseDialog(){
          addWindowListener(new WindowAdaptor(){
            // ... Close behavior ...
          });
        }
      }
      

      Crtl+F将JDialog替换为NoCloseDialog…

      您需要添加windowListener,但还需要为对话框设置默认的关闭操作

          setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
          this.addWindowListener(new WindowAdapter() {
              @Override
              public void windowClosing(WindowEvent e) {
                  if (someConditionIsMet) {
                      dispose();
                  }
              }
          });
      

      razshan,你的问题让人困惑,所以我重新措辞,如果这不正确,更新它,或者回滚它。删除它听起来更好。如果我执行类似于a.setUndecorated(false)的操作,我的大多数对话框都被描述为“int”;我犯了尊重错误我不明白这里“被描述为int”是什么意思?您正在使用
      JOptionPane
      s吗?请注意,删除X按钮也会从对话框中删除框架。您是否考虑过保留带有取消功能的“X”?