我有一个使用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窗口。