1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package de.desy.acop.demo;
24
25 import java.awt.Color;
26 import java.awt.Component;
27 import java.awt.Graphics;
28 import java.awt.event.MouseAdapter;
29 import java.awt.event.MouseEvent;
30
31 import javax.swing.Icon;
32 import javax.swing.JFrame;
33
34 import com.cosylab.gui.components.util.IconHelper;
35
36 import de.desy.acop.displayers.AcopIcon;
37
38
39
40
41
42 public class AcopIconDemo extends JFrame {
43
44 private AcopIcon acopIcon = null;
45
46 class SimpleIcon implements Icon {
47 Color color;
48 SimpleIcon(Color c) {
49 color=c;
50 }
51
52
53
54 public int getIconHeight() {
55 return 32;
56 }
57
58
59
60 public int getIconWidth() {
61 return 32;
62 }
63
64
65
66 public void paintIcon(Component c, Graphics g, int x, int y) {
67 int w= Math.min(g.getClipBounds().height,g.getClipBounds().width);
68 g.setColor(color);
69 g.fillRoundRect((g.getClipBounds().width-w)/2+5,(g.getClipBounds().height-w)/2+5,w-10,w-10,w/5,w/5);
70 }
71 }
72
73
74
75
76
77
78
79 private AcopIcon getAcopIcon1() {
80 if (acopIcon == null) {
81 try {
82 acopIcon = new AcopIcon();
83 acopIcon.setDefaultIcon(IconHelper.createIcon("teilchenspuren_1_ger.jpg"));
84 acopIcon.addIcon(0,new SimpleIcon(Color.RED));
85 acopIcon.addIcon(1,new SimpleIcon(Color.GREEN));
86 acopIcon.addIcon(2,new SimpleIcon(Color.BLUE));
87
88 acopIcon.addMouseListener(new MouseAdapter() {
89
90 @Override
91 public void mouseClicked(MouseEvent e) {
92 acopIcon.setValue((acopIcon.getValue()+1)%4);
93 }
94
95 });
96 } catch (java.lang.Throwable e) {
97 e.printStackTrace();
98 }
99 }
100 return acopIcon;
101 }
102
103
104
105
106 public static void main(String[] args) {
107 AcopIconDemo demo= new AcopIconDemo();
108 demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
109 demo.pack();
110 demo.setVisible(true);
111 }
112
113
114
115
116 public AcopIconDemo() {
117 super();
118 initialize();
119 }
120
121
122
123
124
125
126 private void initialize() {
127 this.setSize(319, 317);
128 this.setContentPane(getAcopIcon1());
129 this.setTitle("JFrame");
130 }
131
132 }