Mercurial > hg > Members > riono > TreeVNC_ja_comment
view src/main/java/jp/ac/u_ryukyu/treevnc/test/IsRetina.java @ 457:effba48b76f3
Fix position
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 22 Jun 2016 19:52:32 +0900 |
parents | 0aab561a8cf4 |
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(); try { Field field = devices[shareScreenNumber].getClass().getDeclaredField("scale"); if (field != null) { field.setAccessible(true); Object retinaScale = field.get(devices[shareScreenNumber]); if (retinaScale instanceof Integer) { scale = (Integer) retinaScale; return scale; } } } catch (Exception ignore) {} 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(); } }