Java中的JFrame

Java中的JFrame,java,swing,jframe,Java,Swing,Jframe,我使用JFrame作为主框架的弹出窗口,用户应该在主框架中输入一些信息,然后按OK。但问题是,一旦这个子帧打开,我希望程序忽略任何其他信号,直到按下OK按钮,就像JOptionPanes一样。现在,您可以单击按钮多次打开子帧,从而获得多个帧,但这并不是目的(它甚至会导致很多错误) 我可以用一个布尔值来解决这个问题,一旦按下OK按钮,这个布尔值就是真的,但这似乎不是一个很酷的解决方法。我觉得必须有其他的方法来做,因为我可以看到我的工作窗格所带来的受欢迎的效果,但无法实现 干杯。你需要一个有礼貌的朋

我使用JFrame作为主框架的弹出窗口,用户应该在主框架中输入一些信息,然后按OK。但问题是,一旦这个子帧打开,我希望程序忽略任何其他信号,直到按下OK按钮,就像JOptionPanes一样。现在,您可以单击按钮多次打开子帧,从而获得多个帧,但这并不是目的(它甚至会导致很多错误)

我可以用一个布尔值来解决这个问题,一旦按下OK按钮,这个布尔值就是真的,但这似乎不是一个很酷的解决方法。我觉得必须有其他的方法来做,因为我可以看到我的工作窗格所带来的受欢迎的效果,但无法实现

干杯。

你需要一个有礼貌的朋友。从Javadocs:

modal
-指定对话框在显示时是否阻止用户输入到其他顶级窗口


只需将
JFrame
更改为
JDialog

然后在构造函数中使用以下行:

setModal(true);
然后,您的应用程序将被阻止,直到对话框关闭


如果您的用户只需输入一个来自瑞典的
字符串

Mats_SX,您可能需要查看一个?你没有出现在悖论论坛上,是吗?我非常喜欢。经常访问OT和eu2部分:)那么你已经认识我了(我在那里用的是我的名字而不是姓)。啊哈!是的。嗯,那边见呵呵:DSo我没办法用JFrame做这个?不容易。但是这里真的没有理由使用JFrame;JDialog几乎可以做JFrame可以做的任何事情,只是操作系统没有将它视为完整窗口。JDialog就是用来做这类事情的(只是一个收集输入的小窗口)。这个问题的细节是,这是一个学校的项目,而我恰好是项目经理。我自己还没有写那段代码,我只需要处理它引起的错误lol。所以我假设要使用JFrame,但是对于将来遇到类似任务,我将使用JDialog。那么,他们输入三个不同的字符串,对于这些字符串的外观有一些要求。对于像这样的定制请求,您可能希望创建自己的定制JDialog,但仍然可以使用JOptionPane。JOptionPane的“message”参数是一个对象。如果是字符串,它将显示该字符串的文本,但您可以传递JComponent以获取其他自定义内容。但我同意上面“使用模态JDialog,这就是他们的目的”的回答。