1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package motej.demos.nunchuk;
17
18 import java.awt.FlowLayout;
19 import java.util.Dictionary;
20 import java.util.Hashtable;
21
22 import javax.swing.BorderFactory;
23 import javax.swing.JComponent;
24 import javax.swing.JLabel;
25 import javax.swing.JPanel;
26 import javax.swing.JSlider;
27
28
29
30
31
32
33 @SuppressWarnings("serial")
34 public class AccelerometerPanel extends JPanel {
35
36 private JSlider sliderX = new JSlider(JSlider.VERTICAL, 0, 10, 5);
37
38 private JSlider sliderY = new JSlider(JSlider.VERTICAL, 0, 10, 5);
39
40 private JSlider sliderZ = new JSlider(JSlider.VERTICAL, 0, 10, 5);
41
42 public AccelerometerPanel() {
43 super();
44
45 setLayout(new FlowLayout());
46 }
47
48 public void accelerometerValueChanged(int x, int y, int z) {
49 sliderX.setValue(x);
50 sliderY.setValue(y);
51 sliderZ.setValue(z);
52 }
53
54 public void setCalibrationDataX(int zeroForce, int earthGravityForce) {
55 sliderX.setMinimum(0);
56 sliderX.setMaximum(earthGravityForce * 2);
57
58 Dictionary<Integer, JComponent> labels = new Hashtable<Integer, JComponent>();
59 labels.put(zeroForce, new JLabel("0 G"));
60 labels.put(earthGravityForce, new JLabel("1 G"));
61 sliderX.setLabelTable(labels);
62 sliderX.setPaintTrack(true);
63 sliderX.setPaintTicks(true);
64 sliderX.setPaintLabels(true);
65
66 sliderX.setBorder(BorderFactory.createTitledBorder("X"));
67 add(sliderX);
68
69 repaint();
70 }
71
72 public void setCalibrationDataY(int zeroForce, int earthGravityForce) {
73 sliderY.setMinimum(0);
74 sliderY.setMaximum(earthGravityForce * 2);
75
76 Dictionary<Integer, JComponent> labels = new Hashtable<Integer, JComponent>();
77 labels.put(zeroForce, new JLabel("0 G"));
78 labels.put(earthGravityForce, new JLabel("1 G"));
79 sliderY.setLabelTable(labels);
80 sliderY.setPaintTrack(true);
81 sliderY.setPaintTicks(true);
82 sliderY.setPaintLabels(true);
83
84 sliderY.setBorder(BorderFactory.createTitledBorder("Y"));
85 add(sliderY);
86
87 repaint();
88 }
89
90 public void setCalibrationDataZ(int zeroForce, int earthGravityForce) {
91 sliderZ.setMinimum(0);
92 sliderZ.setMaximum(earthGravityForce * 2);
93
94 Dictionary<Integer, JComponent> labels = new Hashtable<Integer, JComponent>();
95 labels.put(zeroForce, new JLabel("0 G"));
96 labels.put(earthGravityForce, new JLabel("1 G"));
97 sliderZ.setLabelTable(labels);
98 sliderZ.setPaintTrack(true);
99 sliderZ.setPaintTicks(true);
100 sliderZ.setPaintLabels(true);
101
102 sliderZ.setBorder(BorderFactory.createTitledBorder("Z"));
103 add(sliderZ);
104
105 repaint();
106 }
107 }