Java 如何在同一个监视器中获取JOptionPane.showOptionDialog?

Java 如何在同一个监视器中获取JOptionPane.showOptionDialog?,java,swing,joptionpane,Java,Swing,Joptionpane,我有一台可以工作的笔记本电脑,上面连接着两个显示器。 我通常在监视器2(外部监视器)上运行我的应用程序 在我的应用程序中,我调用了一个JOptionPane.showOptionDialog,但问题是,尽管在monitor one(即笔记本电脑屏幕)上运行并执行monitor II中应用程序的所有计算,对话框始终会出现在monitor one上 我甚至尝试了getParent()方法,但没有任何效果,我希望它能与调用它的JPanel一起弹出 以下是my JOptionPane.showOptio

我有一台可以工作的笔记本电脑,上面连接着两个显示器。 我通常在监视器2(外部监视器)上运行我的应用程序

在我的应用程序中,我调用了一个
JOptionPane.showOptionDialog
,但问题是,尽管在monitor one(即笔记本电脑屏幕)上运行并执行monitor II中应用程序的所有计算,对话框始终会出现在monitor one上

我甚至尝试了
getParent()
方法,但没有任何效果,我希望它能与调用它的JPanel一起弹出

以下是my JOptionPane.showOptionDialog的示例:

JOptionPane.showOptionDialog(getParent() ,
                jsr, //object
                "MESSAGES",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.ERROR_MESSAGE,
                null,
                options,
                options[0]);
   scrollPane.setViewportView(textArea);
   validate();
   repaint();
这是非常恼人的,因为有时我认为应用程序只是崩溃了,因为在monitor one中没有任何内容,但实际上在monitor one中弹出了一个对话框窗口

编辑:

这是一个新问题,因为我没有任何问题,把 对话框顶部,我还使用了
getParent()的解决方案
方法,但它不起作用。我的主要问题是显示器,如果我
我正在运行应用程序监视器-2所有内容都应显示在
监视器-2。但我的情况并非如此

还有别的办法解决这个问题吗?或者有人能为这个问题辩护吗?
谢谢

尝试
JOptionPane.showMessageDialog(这是“测试”),根据它应该有帮助。

可能重复的@JonathanDrapeau检查编辑。这是一个新问题,不,不是。您是否有X个监视器与您如何设置作业窗格的位置无关。另外,您的
getParent()
方法是创建
JOptionPane
的组件之一,我们不知道您的问题中的内容。如果对话框应该显示在面板或框架上,则不应使用
getParent
,而应使用
this
。它最终是一个副本。它应该显示在一个面板上,我在我的(编辑的帖子)中提到过。我将尝试使用“this”来代替getParent()。不,它不起作用,@jonathandrapeau我尝试了这个,但结果是一样的!它不起作用。那么,您是说,即使您通过
,对话框也不会在与您的
JPanel
相同的监视器上弹出并显示在另一个监视器上?