|
20 | 20 |
|
21 | 21 | public class ColorBuilder extends JFrame {
|
22 | 22 |
|
23 |
| - private static final int WIDTH = 700; |
24 |
| - private static final int HEIHGT = 400; |
| 23 | + private static final int WIDTH = 300; |
| 24 | + private static final int HEIHGT = 180; |
25 | 25 |
|
26 |
| - private JSlider aRedSlider = new JSlider(0, 255, 1); |
27 |
| - private JSlider aGreenSlider = new JSlider(0, 255, 1); |
28 |
| - private JSlider aBlueSlider = new JSlider(0, 255, 1); |
| 26 | + private JSlider aRedSlider = new JSlider(0, 255, 50); |
| 27 | + private JSlider aGreenSlider = new JSlider(0, 255, 50); |
| 28 | + private JSlider aBlueSlider = new JSlider(0, 255, 50); |
29 | 29 |
|
30 |
| - private JTextField aRedValue = new JTextField(5); |
31 |
| - private JTextField aGreenValue = new JTextField(5); |
32 |
| - private JTextField aBlueValue = new JTextField(5); |
33 |
| - |
34 |
| - public ColorBuilder() { |
35 |
| - JPanel panel = new JPanel(); |
36 |
| - |
37 |
| - Color(int r, int g, int b) |
38 |
| - |
39 |
| - add(panel); |
40 |
| - |
41 |
| - add(aRedSlider); |
42 |
| - add(aRedValue); |
43 |
| - |
44 |
| - add(aGreenSlider); |
45 |
| - add(aGreenValue); |
46 |
| - |
47 |
| - add(aBlueSlider); |
48 |
| - add(aBlueValue); |
49 |
| - |
| 30 | + private JTextField aRedValue = new JTextField("50", 5); |
| 31 | + private JTextField aGreenValue = new JTextField("50", 5); |
| 32 | + private JTextField aBlueValue = new JTextField("50", 5); |
| 33 | + |
| 34 | + private JLabel aRedLabel = new JLabel("Red"); |
| 35 | + private JLabel aGreenLabel = new JLabel("Green"); |
| 36 | + private JLabel aBlueLabel = new JLabel("Blue"); |
| 37 | + |
| 38 | + private JPanel colorPanel = new JPanel(); |
| 39 | + |
| 40 | + public ColorBuilder() |
| 41 | + { |
| 42 | + add(colorPanel); |
| 43 | + colorPanel.setOpaque(true); |
| 44 | + colorPanel.setBackground(buildColor()); |
| 45 | + |
| 46 | + aRedValue.setEditable(false); |
| 47 | + aGreenValue.setEditable(false); |
| 48 | + aBlueValue.setEditable(false); |
| 49 | + |
| 50 | + GroupLayout layout = new GroupLayout(colorPanel); |
| 51 | + colorPanel.setLayout(layout); |
| 52 | + |
| 53 | + layout.setAutoCreateGaps(true); |
| 54 | + layout.setAutoCreateContainerGaps(true); |
| 55 | + |
| 56 | + layout.setHorizontalGroup( |
| 57 | + layout.createSequentialGroup() |
| 58 | + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) |
| 59 | + .addComponent(aRedLabel) |
| 60 | + .addComponent(aGreenLabel) |
| 61 | + .addComponent(aBlueLabel) |
| 62 | + ) |
| 63 | + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) |
| 64 | + .addComponent(aRedSlider) |
| 65 | + .addComponent(aGreenSlider) |
| 66 | + .addComponent(aBlueSlider) |
| 67 | + ) |
| 68 | + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) |
| 69 | + .addComponent(aRedValue) |
| 70 | + .addComponent(aGreenValue) |
| 71 | + .addComponent(aBlueValue) |
| 72 | + ) |
| 73 | + ); |
| 74 | + layout.setVerticalGroup( |
| 75 | + layout.createSequentialGroup() |
| 76 | + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER) |
| 77 | + .addComponent(aRedLabel) |
| 78 | + .addComponent(aRedSlider) |
| 79 | + .addComponent(aRedValue, GroupLayout.PREFERRED_SIZE, |
| 80 | + GroupLayout.DEFAULT_SIZE, |
| 81 | + GroupLayout.PREFERRED_SIZE) |
| 82 | + ) |
| 83 | + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER) |
| 84 | + .addComponent(aGreenLabel) |
| 85 | + .addComponent(aGreenSlider) |
| 86 | + .addComponent(aGreenValue, GroupLayout.PREFERRED_SIZE, |
| 87 | + GroupLayout.DEFAULT_SIZE, |
| 88 | + GroupLayout.PREFERRED_SIZE) |
| 89 | + ) |
| 90 | + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER) |
| 91 | + .addComponent(aBlueLabel) |
| 92 | + .addComponent(aBlueSlider) |
| 93 | + .addComponent(aBlueValue, GroupLayout.PREFERRED_SIZE, |
| 94 | + GroupLayout.DEFAULT_SIZE, |
| 95 | + GroupLayout.PREFERRED_SIZE) |
| 96 | + ) |
| 97 | + ); |
50 | 98 |
|
51 | 99 | aRedSlider.addChangeListener(new ChangeListener() {
|
52 | 100 | public void stateChanged(ChangeEvent e) {
|
53 |
| - aRedValue = ((JSlider) e.getSource()).getValue(); |
| 101 | + aRedValue.setText(String.valueOf(((JSlider) e.getSource()).getValue())); |
| 102 | + colorPanel.setBackground(buildColor()); |
54 | 103 | }
|
55 | 104 | });
|
56 | 105 |
|
57 | 106 | aGreenSlider.addChangeListener(new ChangeListener() {
|
58 | 107 | public void stateChanged(ChangeEvent e) {
|
59 |
| - aGreenValue = ((JSlider) e.getSource()).getValue(); |
| 108 | + aGreenValue.setText(String.valueOf(((JSlider) e.getSource()).getValue())); |
| 109 | + colorPanel.setBackground(buildColor()); |
60 | 110 | }
|
61 | 111 | });
|
62 | 112 |
|
63 | 113 | aBlueSlider.addChangeListener(new ChangeListener() {
|
64 | 114 | public void stateChanged(ChangeEvent e) {
|
65 |
| - aBlueValue = ((JSlider) e.getSource()).getValue(); |
| 115 | + aBlueValue.setText(String.valueOf(((JSlider) e.getSource()).getValue())); |
| 116 | + colorPanel.setBackground(buildColor()); |
66 | 117 | }
|
67 | 118 | });
|
68 | 119 |
|
69 | 120 | }
|
70 | 121 |
|
| 122 | + private Color buildColor() { |
| 123 | + return new Color( |
| 124 | + Integer.parseInt(aRedValue.getText()), |
| 125 | + Integer.parseInt(aGreenValue.getText()), |
| 126 | + Integer.parseInt(aBlueValue.getText()) |
| 127 | + ); |
| 128 | + } |
| 129 | + |
71 | 130 | public static void main(String[] args) {
|
72 | 131 | SwingConsole.run(new ColorBuilder(), WIDTH, HEIHGT);
|
73 | 132 | }
|
|
0 commit comments