1

我有来自 1 台 PC 的双头(VGA 输出、DVI 或 HDMI 输出)xrandr --output VGA1 --left-of LVDS1。每个具有 1024x768 分辨率。

当我使用 Java 使用它时:

screen = Toolkit.getDefaultToolkit().getScreenSize();

我得到了一个巨大的两个屏幕宽度。结果我的宽度和高度很大。我只需要将我的应用程序放在一个屏幕上,VGA 或 DVI。但是使用Java我怎么知道呢?

我怎么知道使用 Toolkit.getDefaultToolkit() ?

示例:(我的应用程序必须在标有 Java 的地方运行)

在此处输入图像描述

测试.java

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;

public class Test {

  public static void main(String[] a) throws Exception {
      GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
      GraphicsDevice[] screenDevices = ge.getScreenDevices();
      for (int i = 0; i < screenDevices.length; i++) {
        System.out.println(screenDevices[i].getIDstring());

        DisplayMode dm = screenDevices[i].getDisplayMode();
        int screenWidth = dm.getWidth();
        int screenHeight = dm.getHeight(); 

        System.out.println("Cake: " + screenWidth + " " + screenHeight);
      }      
  }
}

Output:

:0.0
Cake: 1024 768
:0.1
Cake: 1024 768
4

1 回答 1

2

我认为

GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()

就是你要找的。然后从那里您可以遍历屏幕并通过以下方式获取屏幕尺寸getDisplayMode()

于 2012-01-21T17:29:58.993 回答