Как узнать разрешение экрана ширину и высоту, когда у меня двойная или тройная головка с одного ПК? - PullRequest
1 голос
/ 21 января 2012

У меня двойная головка (выход VGA, выход DVI или HDMI) с 1 ПК, использующего этот xrandr --output VGA1 --left-of LVDS1 Каждый с разрешением 1024x768.

Когда я использую это, используя Java:

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

Я получаю огромную ширину в два экрана. В результате моя ширина и высота огромны. Где мне нужно только разместить свое приложение на одном экране, VGA или DVI. Но используя Java, как я узнаю это?

Как мне сказать, что с помощью Toolkit.getDefaultToolkit ()?

Пример: (мое приложение должно работать там, где помечена Java)

enter image description here

Test.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

1 Ответ

4 голосов
/ 21 января 2012

Я думаю

GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()

- это то, что вы ищете.И тогда оттуда вы можете перебирать экраны и получать размер экрана на getDisplayMode()

...