2015-05-12 62 views
0

打开我开发一个Swing应用程序,只是有点查询有关JOptionPane.showMessageDialog()这是窃听我:JOptionPane的窗口,在后台

  • JOptionPane.showMessageDialog(null, "Record entered successfully");
    如果我写这样的代码出现在我的父母后面的留言窗口帧。
  • JOptionPane.showMessageDialog(this, "Record entered successfully");
    而此代码自动将窗口放在父框架上。

的问题是:在实施null作为第一个参数得到消息在当前父帧的背景,而如果我写this作为第一个参数的窗口出现在父框架。为什么这会发生?

+1

问题是什么? – kiheru

+1

当窗口“拥有”时,对话框将出现在窗口上方并将阻止它。这就是他们的工作原理 – MadProgrammer

+0

问题是:在实现**'null ** **作为第一个参数时,我在当前父框架的背景下获取消息,而如果我将**'this' **作为第一个参数,窗口来自父框架。这是为什么发生? – mustangDC

回答

1

在该方法中

showMessageDialog(Component parentComponent, Object message) 

的第一个参数设置对话框的父:

为父级

定义将作为此对话框的父项的组件。它有两种使用方式:包含它的框架用作对话框的框架父项,其屏幕坐标用于对话框的位置。通常,对话框放置在组件的正下方。此参数可能是null,在这种情况下,默认的Frame被用作父级,并且对话框将在屏幕上居中(取决于L & F)。

我假定该方法会出现一个JFrame类内部,在这种情况下,通过this作为参数将设置父组件作为该帧。