annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
1 package jp.ac.u_ryukyu.treevnc.test;
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
2
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
3 import java.awt.*;
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
4 import java.awt.image.BufferedImage;
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
5 import java.lang.reflect.Field;
457
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
6 import java.util.ArrayList;
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
7
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
8 /**
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
9 * Created by one on 15/08/18.
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
10 */
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
11 public class IsRetina {
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
12
457
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
13 public static int getRetinaScale(int shareScreenNumber) {
409
0aab561a8cf4 Return retina scale
innparusu
parents: 373
diff changeset
14 int scale = 1;
373
b6665f7f18d1 Fix Change Server
innparusu
parents: 372
diff changeset
15 GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
457
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
16 final GraphicsDevice[] devices = env.getScreenDevices();
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
17
373
b6665f7f18d1 Fix Change Server
innparusu
parents: 372
diff changeset
18 try {
457
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
19 Field field = devices[shareScreenNumber].getClass().getDeclaredField("scale");
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
20
373
b6665f7f18d1 Fix Change Server
innparusu
parents: 372
diff changeset
21 if (field != null) {
b6665f7f18d1 Fix Change Server
innparusu
parents: 372
diff changeset
22 field.setAccessible(true);
457
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
23 Object retinaScale = field.get(devices[shareScreenNumber]);
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
24
409
0aab561a8cf4 Return retina scale
innparusu
parents: 373
diff changeset
25 if (retinaScale instanceof Integer) {
457
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
26 scale = (Integer) retinaScale;
409
0aab561a8cf4 Return retina scale
innparusu
parents: 373
diff changeset
27 return scale;
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
28 }
373
b6665f7f18d1 Fix Change Server
innparusu
parents: 372
diff changeset
29 }
b6665f7f18d1 Fix Change Server
innparusu
parents: 372
diff changeset
30 } catch (Exception ignore) {}
409
0aab561a8cf4 Return retina scale
innparusu
parents: 373
diff changeset
31 return scale;
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
32 }
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
33
457
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
34 public static ArrayList<Rectangle> getScreenRectangles() {
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
35 // New screen server has one or more screens.
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
36 // Screens are numbered in the order from left.
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
37 // put screens in an ArrayList.
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
38 ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
39 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
40 GraphicsDevice[] gs = ge.getScreenDevices();
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
41 int screenNumber = 0;
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
42 for (GraphicsDevice gd : gs) {
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
43 for (GraphicsConfiguration r : gd.getConfigurations()) {
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
44 System.out.println("Retina scale :" + getRetinaScale(screenNumber));
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
45 Rectangle rect = r.getBounds();
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
46 System.out.println("screen "+ screenNumber +":"+rect);
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
47 rectangles.add(rect);
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
48 }
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
49 screenNumber++;
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
50 }
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
51 return rectangles;
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
52 }
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
53
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
54 public static void main(String args[]) {
457
effba48b76f3 Fix position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 409
diff changeset
55 getScreenRectangles();
372
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
56 }
d393cb629016 Add IsRetinaClass
innparusu
parents:
diff changeset
57 }