27 import javax.swing.*; |
27 import javax.swing.*; |
28 import TUIO.*; |
28 import TUIO.*; |
29 |
29 |
30 public class TuioDemo { |
30 public class TuioDemo { |
31 |
31 |
32 private final int window_width = 640; |
32 private final int window_width = 640; |
33 private final int window_height = 480; |
33 private final int window_height = 480; |
34 |
34 |
35 private boolean fullscreen = false; |
35 private boolean fullscreen = false; |
36 |
36 |
37 private TuioDemoComponent demo; |
37 private TuioDemoComponent demo; |
38 private JFrame frame; |
38 private JFrame frame; |
39 private GraphicsDevice device; |
39 private GraphicsDevice device; |
40 |
40 |
41 public TuioDemo() { |
41 public TuioDemo() { |
42 demo = new TuioDemoComponent(); |
42 demo = new TuioDemoComponent(); |
43 device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); |
43 device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); |
44 setupWindow(); |
44 setupWindow(); |
45 showWindow(); |
45 showWindow(); |
46 } |
46 } |
47 |
47 |
48 public TuioListener getTuioListener() { |
48 public TuioListener getTuioListener() { |
49 return demo; |
49 return demo; |
50 } |
50 } |
51 |
51 |
52 public void setupWindow() { |
52 public void setupWindow() { |
53 |
53 |
54 frame = new JFrame(); |
54 frame = new JFrame(); |
55 frame.add(demo); |
55 frame.add(demo); |
56 |
56 |
57 frame.setTitle("TuioDemo"); |
57 frame.setTitle("TuioDemo"); |
58 frame.setResizable(false); |
58 frame.setResizable(false); |
59 |
59 |
60 frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent evt) { |
60 frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent evt) { |
61 System.exit(0); |
61 System.exit(0); |
62 } }); |
62 } }); |
63 |
63 |
64 frame.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent evt) { |
64 frame.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent evt) { |
65 if (evt.getKeyCode()==KeyEvent.VK_ESCAPE) System.exit(0); |
65 if (evt.getKeyCode()==KeyEvent.VK_ESCAPE) System.exit(0); |
66 else if (evt.getKeyCode()==KeyEvent.VK_F1) { |
66 else if (evt.getKeyCode()==KeyEvent.VK_F1) { |
67 destroyWindow(); |
67 destroyWindow(); |
68 setupWindow(); |
68 setupWindow(); |
69 fullscreen = !fullscreen; |
69 fullscreen = !fullscreen; |
70 showWindow(); |
70 showWindow(); |
71 } |
71 } |
72 else if (evt.getKeyCode()==KeyEvent.VK_V) demo.verbose=!demo.verbose; |
72 else if (evt.getKeyCode()==KeyEvent.VK_V) demo.verbose=!demo.verbose; |
73 } }); |
73 } }); |
74 } |
74 } |
75 |
75 |
76 public void destroyWindow() { |
76 public void destroyWindow() { |
77 |
77 |
78 frame.setVisible(false); |
78 frame.setVisible(false); |
79 if (fullscreen) { |
79 if (fullscreen) { |
80 device.setFullScreenWindow(null); |
80 device.setFullScreenWindow(null); |
81 } |
81 } |
82 frame = null; |
82 frame = null; |
83 } |
83 } |
84 |
84 |
85 public void showWindow() { |
85 public void showWindow() { |
86 |
86 |
87 if (fullscreen) { |
87 if (fullscreen) { |
88 int width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(); |
88 int width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(); |
89 int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight(); |
89 int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight(); |
90 demo.setSize(width,height); |
90 demo.setSize(width,height); |
91 |
91 |
92 frame.setSize(width,height); |
92 frame.setSize(width,height); |
93 frame.setUndecorated(true); |
93 frame.setUndecorated(true); |
94 device.setFullScreenWindow(frame); |
94 device.setFullScreenWindow(frame); |
95 } else { |
95 } else { |
96 int width = window_width; |
96 int width = window_width; |
97 int height = window_height; |
97 int height = window_height; |
98 demo.setSize(width,height); |
98 demo.setSize(width,height); |
99 |
99 |
100 frame.pack(); |
100 frame.pack(); |
101 Insets insets = frame.getInsets(); |
101 Insets insets = frame.getInsets(); |
102 frame.setSize(width,height +insets.top); |
102 frame.setSize(width,height +insets.top); |
103 |
103 |
104 } |
104 } |
105 |
105 |
106 frame.setVisible(true); |
106 frame.setVisible(true); |
107 frame.repaint(); |
107 frame.repaint(); |
108 |
108 |
109 } |
109 } |
110 |
110 |
111 public static void main(String argv[]) { |
111 public static void main(String argv[]) { |
112 |
112 |
113 TuioDemo demo = new TuioDemo(); |
113 TuioDemo demo = new TuioDemo(); |
114 TuioClient client = null; |
114 TuioClient client = null; |
115 |
115 |
116 switch (argv.length) { |
116 switch (argv.length) { |
117 case 1: |
117 case 1: |
118 try { |
118 try { |
119 client = new TuioClient( Integer.parseInt(argv[0])); |
119 client = new TuioClient( Integer.parseInt(argv[0])); |
120 } catch (Exception e) { |
120 } catch (Exception e) { |
121 System.out.println("usage: java TuioDemo [port]"); |
121 System.out.println("usage: java TuioDemo [port]"); |
122 System.exit(0); |
122 System.exit(0); |
123 } |
123 } |
124 break; |
124 break; |
125 case 0: |
125 case 0: |
126 client = new TuioClient(80); |
126 client = new TuioClient(80); |
127 break; |
127 break; |
128 default: |
128 default: |
129 System.out.println("usage: java TuioDemo [port]"); |
129 System.out.println("usage: java TuioDemo [port]"); |
130 System.exit(0); |
130 System.exit(0); |
131 break; |
131 break; |
132 } |
132 } |
133 |
133 |
134 if (client!=null) { |
134 if (client!=null) { |
135 client.addTuioListener(demo.getTuioListener()); |
135 client.addTuioListener(demo.getTuioListener()); |
136 client.connect(); |
136 client.connect(); |
137 } else { |
137 } else { |
138 System.out.println("usage: java TuioDemo [port]"); |
138 System.out.println("usage: java TuioDemo [port]"); |
139 System.exit(0); |
139 System.exit(0); |
140 } |
140 } |
141 } |
141 } |
142 |
142 |
143 } |
143 } |