JOptionPane窗口在后台

时间:2015-05-12 09:45:34

标签: java swing joptionpane

我正在开发一个swing应用程序,只是关于JOptionPane.showMessageDialog()的一个小问题,这让我烦恼:

  • JOptionPane.showMessageDialog(null, "Record entered successfully");
    如果我编写此代码,则消息窗口将显示在我父框架的后面。
  • JOptionPane.showMessageDialog(this, "Record entered successfully");
    而这段代码会自动将窗口放在父框架上。

问题是:在实施 null 作为第一个参数时,我在当前父框架的背景中获取消息,而如果我写 this 作为第一个参数窗口来自父框架。为什么会这样?

2 个答案:

答案 0 :(得分:1)

方法

[{MATL_DESC_0=Slug for spiral casing, NS_LEFT_0=2, COMP_UNIT_0=PC, NS_RIGHT_0=3, COMP_QTY_0=1, COMPONENT_0=400-110}, 
 {NS_LEFT_1=4, MATL_DESC_1=Flat gasket, COMP_UNIT_1=PC, NS_RIGHT_1=5, COMP_QTY_1=1, COMPONENT_1=400-120}, 
 {MATL_DESC_2=Hexagon head screw M10, COMP_UNIT_2=PC, COMPONENT_2=400-130, NS_LEFT_2=6, NS_RIGHT_2=7, COMP_QTY_2=8}, 
 {COMPONENT_3=400-140, NS_RIGHT_3=15, NS_CHILD_3=[{COMPONENT_3_child=400-141, NS_RIGHT_3_child=10, NS_LEFT_3_child=9, COMP_QTY_3_child=1, MATL_DESC_3_child=Sensor, COMP_UNIT_3_child=PC}, 
                                               {COMPONENT_3_child=400-142, NS_RIGHT_3_child=12, NS_LEFT_3_child=11, COMP_QTY_3_child=1, MATL_DESC_3_child=Display, COMP_UNIT_3_child=PC}, 
                                               {COMPONENT_3_child=400-143, NS_RIGHT_3_child=14, NS_LEFT_3_child=13, COMP_QTY_3_child=1, MATL_DESC_3_child=Casing, COMP_UNIT_3_child=PC}], NS_LEFT_3=8, COMP_QTY_3=1, MATL_DESC_3=Revolution counter, COMP_UNIT_3=PC}, 
{COMPONENT_4=400-150, NS_LEFT_4=16, NS_RIGHT_4=23, NS_CHILD_4=[{NS_LEFT_4_child=17, COMPONENT_4_child=400-151, MATL_DESC_4_child=Temperature sensor, NS_RIGHT_4_child=18, COMP_QTY_4_child=1, COMP_UNIT_4_child=PC}, 
                                                            {NS_LEFT_4_child=19, COMPONENT_4_child=400-152, MATL_DESC_4_child=Display, NS_RIGHT_4_child=20, COMP_QTY_4_child=1, COMP_UNIT_4_child=PC}, 
                                                            {NS_LEFT_4_child=21, COMPONENT_4_child=400-153, MATL_DESC_4_child=Casing, NS_RIGHT_4_child=22, COMP_QTY_4_child=1, COMP_UNIT_4_child=PC}], COMP_QTY_4=1, MATL_DESC_4=Thermostat, COMP_UNIT_4=PC}, 
]

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

  

为父级

     

定义要作为此对话框的父级的Component。它以两种方式使用:包含它的Frame用作对话框的Frame父级,其屏幕坐标用于放置对话框。通常,对话框位于组件的正下方。此参数可以是showMessageDialog(Component parentComponent, Object message) ,在这种情况下,默认的Frame用作父级,对话框将以屏幕为中心(取决于L& F)。

我假设该方法出现在null类中,在这种情况下,将JFrame作为参数将父组件设置为该帧。

答案 1 :(得分:0)

使用java关键字this(在本例中)来引用当前类 - 因此您指的是父窗口。看到这个链接,它非常方便:

http://javapapers.com/core-java/explain-the-java-this-keyword/