Mercurial > hg > Applications > TreeVNC
view src/main/java/jp/ac/u_ryukyu/treevnc/test/IsRetina.java @ 551:e912db2ab778
fix RetinaDisplay API for java9 and above
author | e165729 <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 29 Jan 2020 00:25:42 +0900 |
parents | effba48b76f3 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.treevnc.test; import java.awt.*; import java.awt.image.BufferedImage; import java.lang.reflect.Field; import java.util.ArrayList; /** * Created by one on 15/08/18. */ public class IsRetina { public static int getRetinaScale(int shareScreenNumber) { int scale = 1; GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); final GraphicsDevice[] devices = env.getScreenDevices(); GraphicsConfiguration conf = devices[shareScreenNumber].getDefaultConfiguration(); scale = (int)conf.getDefaultTransform().getScaleX(); return scale; } public static ArrayList<Rectangle> getScreenRectangles() { // New screen server has one or more screens. // Screens are numbered in the order from left. // put screens in an ArrayList. ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>(); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gs = ge.getScreenDevices(); int screenNumber = 0; for (GraphicsDevice gd : gs) { for (GraphicsConfiguration r : gd.getConfigurations()) { System.out.println("Retina scale :" + getRetinaScale(screenNumber)); Rectangle rect = r.getBounds(); System.out.println("screen "+ screenNumber +":"+rect); rectangles.add(rect); } screenNumber++; } return rectangles; } public static void main(String args[]) { getScreenRectangles(); } }