博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  Swing项目中的一个需求需要实现的功能JFrame中弹出的dialog对话框中通过按钮事件弹出新的jframe窗口。Jdialog覆盖主jframe但是不能覆盖新的jFrame窗口

 实现方式是修改jdialog的mode方式setModalityType(ModalityType.DOCUMENT_MODAL),然后在按钮事件中打开jframe即可

  java.awt.EventQueue.invokeLater(new Runable(){

    new JFrame1().setVisible(true);

  })

通过看Jdialog的源码,初始化时设置的mode为ture时,设置的ModalityType值为APPLICATION_MODAL,false时设置的是MODELESS

APPLICATION_MODAL
APPLICATION_MODAL对话框阻止来自同一Java应用程序的所有顶级窗口,但来自其自己的子层次结构的窗口除外。
DOCUMENT_MODAL
DOCUMENT_MODAL对话框阻止来自同一文档的所有顶级窗口的输入,但来自其自己的子层次结构的窗口除外。
MODELESS
MODELESS对话框不会阻止任何顶级窗口。
TOOLKIT_MODAL
TOOLKIT_MODAL对话框阻止从同一工具箱运行的所有顶级窗口,但来自其自己的子层次结构的窗口除外。
posted on 2021-07-05 15:38  ygq1988  阅读(438)  评论(1编辑  收藏  举报