gpt4 book ai didi

java - 如何确保 JOptionPane 在特定监视器上打开?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:21:33 26 4
gpt4 key购买 nike

使用启动多个后台进程的 Java 应用程序。
如果出现问题,JOptionPane 会弹出一些一般信息。
工作站有多个显示器,JOptionPane 可能会出现在他们中的任何一个。
没有关联的窗口用作 JOptionPane 的“父级”。
有没有办法指定 JOptionPane 应该出现在哪个监视器上?

最佳答案

如果直接使用 JOptionPane,您可以通过实例化来指定对话框出现的位置。示例:

JOptionPane pane = new JOptionPane("Hi!");
JDialog dialog = pane.createDialog("Look at me");
dialog.setVisible(true);

在示例中,在调用 dialog.setVisible() 之前,您可以定位对话框,例如:

dialog.setBounds(100, 100, 100, 100);

要在非默认显示器上显示对话框,您必须获得所需显示器的边界 ( Rectangle ),并且可以将对话框定位在该区域内。

以下是获取显示列表(及其边界)的方法。代码取自 GraphicsConfiguration 的 Javadoc ):

Rectangle virtualBounds = new Rectangle();
GraphicsEnvironment ge = GraphicsEnvironment.
getLocalGraphicsEnvironment();
GraphicsDevice[] gs =
ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) {
GraphicsDevice gd = gs[j];
GraphicsConfiguration[] gc =
gd.getConfigurations();
for (int i=0; i < gc.length; i++) {
virtualBounds =
virtualBounds.union(gc[i].getBounds());
}
}

关于java - 如何确保 JOptionPane 在特定监视器上打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28478366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com