Skip to content

Commit dca15d9

Browse files
author
java-tester-x
committed
GUI: color builder example
1 parent d975913 commit dca15d9

File tree

1 file changed

+87
-28
lines changed

1 file changed

+87
-28
lines changed

gui/ColorBuilder.java

Lines changed: 87 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,54 +20,113 @@
2020

2121
public class ColorBuilder extends JFrame {
2222

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;
2525

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);
2929

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+
);
5098

5199
aRedSlider.addChangeListener(new ChangeListener() {
52100
public void stateChanged(ChangeEvent e) {
53-
aRedValue = ((JSlider) e.getSource()).getValue();
101+
aRedValue.setText(String.valueOf(((JSlider) e.getSource()).getValue()));
102+
colorPanel.setBackground(buildColor());
54103
}
55104
});
56105

57106
aGreenSlider.addChangeListener(new ChangeListener() {
58107
public void stateChanged(ChangeEvent e) {
59-
aGreenValue = ((JSlider) e.getSource()).getValue();
108+
aGreenValue.setText(String.valueOf(((JSlider) e.getSource()).getValue()));
109+
colorPanel.setBackground(buildColor());
60110
}
61111
});
62112

63113
aBlueSlider.addChangeListener(new ChangeListener() {
64114
public void stateChanged(ChangeEvent e) {
65-
aBlueValue = ((JSlider) e.getSource()).getValue();
115+
aBlueValue.setText(String.valueOf(((JSlider) e.getSource()).getValue()));
116+
colorPanel.setBackground(buildColor());
66117
}
67118
});
68119

69120
}
70121

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+
71130
public static void main(String[] args) {
72131
SwingConsole.run(new ColorBuilder(), WIDTH, HEIHGT);
73132
}

0 commit comments

Comments
 (0)