Java JOptionPane窗口在后台打开
我正在开发一个swing应用程序,只是一个关于Java JOptionPane窗口在后台打开,java,swing,joptionpane,Java,Swing,Joptionpane,我正在开发一个swing应用程序,只是一个关于JOptionPane.showMessageDialog()的小问题,这让我感到困扰: JOptionPane.showMessageDialog(空,“记录输入成功”) 如果我编写此代码,消息窗口将显示在父帧的后面 JOptionPane.showMessageDialog(这是“记录输入成功”)而此代码会自动将窗口放置在父帧上 问题是:当实现
JOptionPane.showMessageDialog()
的小问题,这让我感到困扰:
JOptionPane.showMessageDialog(空,“记录输入成功”)代码>
如果我编写此代码,消息窗口将显示在父帧的后面JOptionPane.showMessageDialog(这是“记录输入成功”)代码>
而此代码会自动将窗口放置在父帧上
问题是:当实现
作为第一个参数时,我会在当前父帧的背景中获得消息,而如果我将作为第一个参数写入,窗口将覆盖父帧。为什么会发生这种情况?java关键字this
用于(在本例中)引用当前类-因此您引用的是父窗口。请参阅此链接,它非常方便:
方法中的
showMessageDialog(Component parentComponent, Object message)
第一个参数设置对话框的父级:
父组件
定义要作为此对话框父级的组件。它有两种使用方式:包含它的框架用作对话框的框架父对象,其屏幕坐标用于对话框的放置。通常,该对话框位于零部件的正下方。此参数可能为null
,在这种情况下,默认帧用作父帧,对话框将在屏幕上居中(取决于L&F)
我假设该方法出现在JFrame
类中,在这种情况下,将this
作为参数传递会将父组件设置为该框架。问题是什么?当窗口“拥有”时,对话框会出现在其上方并将其阻止。这就是它们的工作原理问题是:当实现null
作为第一个参数时,我会在当前父帧的背景上获得消息,而如果我将这个
作为第一个参数写入,窗口将覆盖父帧。为什么会发生这种情况?@MadProgrammer:owned是指使用THIS
?作为状态,第一个参数决定父帧。当对话框被指定时(即,您将此
作为参数传递的情况下),该对话框被放置在该对话框之上。如果未指定父级,则结果在某种程度上取决于系统。