1

これを使用して、1台のPCからデュアルヘッド(VGA出力、DVIまたはHDMI出力)を持っていますxrandr --output VGA1 --left-of LVDS1。それぞれの解像度は 1024x768 です。

Javaを使用してこれを使用する場合:

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

一緒に巨大な2つの画面幅を取得します。その結果、私の幅と高さは巨大です。VGA または DVI のいずれかの 1 つの画面にアプリケーションを配置するだけでよい場合。しかし、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 に答える