Java JFrame始终位于顶部,不在主框架上执行操作
我有一个主Java JFrame始终位于顶部,不在主框架上执行操作,java,swing,jframe,always-on-top,Java,Swing,Jframe,Always On Top,我有一个主JFrame链接到另一个JFrame, 假设主框架是M,子框架是C,当我点击MaJFrameC成功打开时,我在这里添加了setAlwaysOnTop(true)方法到CJFrame。很好,一切都很顺利 但是当我的CJFrame在顶部时,我不希望我的MJFrame操作工作,除非CJFrame关闭 这似乎是一个有点尴尬和愚蠢的问题。但请务必回答根据您的描述,在我看来,您需要一个模态对话框 您的C基本上是一个JDialog,您可以将其设置为Dialog.ModalityType.APPLIC
JFrame
链接到另一个JFrame
,
假设主框架是M
,子框架是C
,当我点击M
aJFrame
C
成功打开时,我在这里添加了setAlwaysOnTop(true)
方法到C
JFrame
。很好,一切都很顺利
但是当我的C
JFrame在顶部时,我不希望我的M
JFrame
操作工作,除非C
JFrame关闭
这似乎是一个有点尴尬和愚蠢的问题。但请务必回答根据您的描述,在我看来,您需要一个模态对话框 您的
C
基本上是一个JDialog,您可以将其设置为Dialog.ModalityType.APPLICATION\u MODAL
:
JFrame m = new JFrame(...);
JDialog c = new JDialog(m, "", Dialog.ModalityType.APPLICATION_MODAL );
在此处阅读有关模态对话框的更多信息:
JDialog
,其余的帧作为所有者。2) 不要随意用大写字母(大写)开头单词。请在句子的开头使用大写字母表示单词I,以及诸如ArrayList
或Oracle之类的专有名称。很抱歉(大写),但我只有2个JFrame,使用2个frame也是不好的做法?当您打开C帧时,单击按钮,然后执行M.setEnabled(false)
当你关闭C时,做相反的M.setEnabled(true)
“但是我只有2个JFrame,使用2个frame也是不好的做法?”多重意味着“两个或更多”。你只是说多个frame不好,不好,但是为什么不给我一些替代的解决方案呢@大卫·坦泽帮助了我。我找到解决办法了是的!这就是我一直在寻找的,因为几个星期以来,你让它很容易+1从我的人。