2014-03-26 28 views
1

如果我正在处理这个问题,请告诉我。具有多种形式的Java

我有什么:

  • 的JFrame
  • 的JDialog
  • 主要可执行

我想做

有办法打开JDialog(全班扩展JDialog)并让JFrame暂停并等待JDialog在做任何事情之前都要关闭。 JDialog实际上是隐藏的,所以我可以调用一个方法来拉取用户输入的数据。

我的问题

  • 无法弄清楚如何使JFrame中等到JDialog的是,如果可能的话我想JFrame中被禁用,直到的JDialog关闭执行更多的代码
  • 前关闭。

回答

2

什么你所描述的无非是使用模式的JDialog更多。构建对话框时,当您调用其构造函数时,请务必将其模态类型设置为ModalityType.APPLICATION_MODAL。

例如,

JDialog myDialog = new JDialog(myJFrame, "Dialog", 
     Dialog.ModalityType.APPLICATION_MODAL); 

请阅读:How to Use Modality in Dialogs

+0

myJFrame,是JFrame中或从我的例子中的JDialog? – Brandon

+0

@Brandon:''我的例子中的JDialog ...“ - 呃,...你不会发布任何我能看到的示例代码。也许你可以猜测myJFrame是代表一个JFrame还是一个JDialog。我相信你可以弄清楚这一点。 –

+1

@Brandon:对于讽刺对不起,但严重的是,myJFrame将代表调用JFrame,即对话框父窗口。我认为这应该是显而易见的,我称之为“myJFrame”,这就是我为什么给它起名字的原因。如果您需要更具体的帮助,那么通过一切手段,发布示例代码,最好是[最小示例程序](http://stackoverflow.com/help/mcve)(请阅读链接)。 –