这个问题以前有人问过,但根据我的发现,这些问题和回答是几年前的,希望有最新的信息。
在windows上运行的代码与在右上角显示x的代码相同。
在Linux上,右上角没有显示任何内容。
Windows正在使用JDK 1.8.0_60
Linux正在使用1.8.0_111-b15
java - JDialog在Linux上未显示最小化/关闭按钮-LMLPHP
基于这一研究,这个问题已知存在于不同口味的Linux。

import javax.swing.JDialog;

public class JDialogSimple{

  private JDialog dialog = new JDialog();

  public JDialogSimple() {
    dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    dialog.setModal(true);
    dialog.pack();
    dialog.setLocation(200, 200);
    dialog.setSize(400, 400);
    dialog.setTitle("Test Dialog");
    dialog.setVisible(true);
  }

  public static void main(String args[]) {
      JDialogSimple colourDialog = new JDialogSimple();
  }
}

有没有与此相关的新消息?
这是现在Linux平台上公认的行为吗?

最佳答案

我注意到有一个帖子的答案是:

 super(null, title, Dialog.ModalityType.MODELESS);

我想应该是这样的:
 super(null, title, Dialog.ModalityType.APPLICATION_MODAL);

对于我的测试,将上面的从无模式更改为应用程序模式,LinuxJDialog现在显示X来关闭窗口。

09-11 17:18