我有一个使用JOptionPane.show*方法通知应用程序
用户在显示应用程序主窗口之前了解各种情况。
在多屏幕设置中,这些总是显示在第一个屏幕上。这通常只是
有点烦人,但在0屏幕关闭或断开连接时会成为问题。

使用获得的GraphicsConfiguration可以正确放置普通窗口
通过MouseInfo,但是我找不到将其传递给JOptionPane的方法。我可以
也不使用主窗口来锚定对话框,因为没有主窗口
应用程序启动阶段的窗口。其中可能的对话框是
关于过时的Java版本的警告,因此请在
错误不是选项,因为用户的Java运行时甚至无法
显示主窗口。

有没有一种方法可以指定目标屏幕而不重新实现主要部分
JOptionPane吗?

最佳答案

您可以使用JOptionPane创建一个JDialog,然后将对话框显示在所需的任何位置。

按照JOptoinPane API:

 JOptionPane pane = new JOptionPane(arguments);
 pane.set.Xxxx(...); // Configure
 JDialog dialog = pane.createDialog(parentComponent, title);
 // here set the dialog's location
 dialog.setVisible(true);

编辑:或者,您可以按照Andrew的出色评论(现在不再存在?)简单地从头创建自己的JDialog窗口。

07-28 03:30
查看更多