Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFrame始终位于顶部,不在主框架上执行操作_Java_Swing_Jframe_Always On Top - Fatal编程技术网

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
a
JFrame
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 );
在此处阅读有关模态对话框的更多信息:


1)参见。可能其中一个帧应该是
JDialog
,其余的帧作为所有者。2) 不要随意用大写字母(大写)开头单词。请在句子的开头使用大写字母表示单词I,以及诸如
ArrayList
或Oracle之类的专有名称。很抱歉(大写),但我只有2个JFrame,使用2个frame也是不好的做法?当您打开C帧时,单击按钮,然后执行
M.setEnabled(false)
当你关闭C时,做相反的
M.setEnabled(true)
“但是我只有2个JFrame,使用2个frame也是不好的做法?”多重意味着“两个或更多”。你只是说多个frame不好,不好,但是为什么不给我一些替代的解决方案呢@大卫·坦泽帮助了我。我找到解决办法了是的!这就是我一直在寻找的,因为几个星期以来,你让它很容易+1从我的人。