指定单个JOptionPane的目标屏幕

时间:2013-07-27 14:07:18

标签: java swing joptionpane multiple-monitors

我有一个使用JOptionPane.show*方法通知的应用程序 用户在显示应用程序主窗口之前的各种条件。 在多屏幕设置中,这些始终显示在第一个屏幕上。这通常只是 一个轻微的烦恼,但在0屏幕关闭或断开连接时会出现问题。

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

有没有办法在不重新实现主要部分的情况下指定目标屏幕 是JOptionPane

1 个答案:

答案 0 :(得分:3)

您可以从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);

编辑:或者,您可以根据安德鲁的精彩评论(现在已不复存在?)从头创建您自己的JDialog窗口。