1
+
2
+
3
+ import java .awt .*;
4
+ import javax .swing .*;
5
+ import javax .swing .event .ChangeEvent ;
6
+ import javax .swing .event .ChangeListener ;
7
+
8
+ import java .awt .event .*;
9
+
10
+ public class Preferences extends JFrame {
11
+
12
+ private JMenuBar menuBar ;
13
+
14
+ private JLabel Lbl1 ;
15
+ private JLabel Lbl2 ;
16
+
17
+ private JLabel RedLbl ;
18
+ private JLabel GreenLbl ;
19
+ private JLabel BlueLbl ;
20
+
21
+ private JTextField RGBTxtField ;
22
+ private JPanel Cpanel ;
23
+
24
+ public JSlider RSlider ;
25
+ public JSlider GSlider ;
26
+ public JSlider BSlider ;
27
+
28
+ static int R = 214 ;
29
+ static int G = 217 ;
30
+ static int B = 223 ;
31
+
32
+ // Constructor
33
+ public Preferences () {
34
+
35
+ this .setTitle ("Preferences" );
36
+ this .setSize (400 , 200 );
37
+ // menu generate method
38
+ generateMenu ();
39
+ this .setJMenuBar (menuBar );
40
+
41
+ // pane with null layout
42
+ JPanel contentPane = new JPanel (null );
43
+ contentPane .setPreferredSize (new Dimension (400 , 200 ));
44
+ contentPane .setBackground (new Color (192 , 192 , 192 ));
45
+
46
+ // adding components to contentPane panel
47
+
48
+ // adding panel to JFrame and setting of window position and close
49
+ // operation
50
+ getContentPane ().add (contentPane );
51
+ contentPane .setLayout (null );
52
+
53
+ Cpanel = new JPanel ();
54
+ Cpanel .setBounds (287 , 51 , 103 , 87 );
55
+ Cpanel .setBackground (new Color (R , G , B ));
56
+ contentPane .add (Cpanel );
57
+ Cpanel .setVisible (false );
58
+
59
+ RGBTxtField = new JTextField ();
60
+ RGBTxtField .setBounds (287 , 11 , 103 , 40 );
61
+ RGBTxtField .setFont (new Font ("Consolas" , Font .PLAIN , 12 ));
62
+ RGBTxtField .setToolTipText ("RGB" );
63
+ RGBTxtField .setEditable (false );
64
+ RGBTxtField .setText ("(" + R + "," + G + "," + B + ")" );
65
+ contentPane .add (RGBTxtField );
66
+ RGBTxtField .setColumns (10 );
67
+ RGBTxtField .setVisible (false );
68
+
69
+ Lbl1 = new JLabel ("This is the Preferences Frame" );
70
+ Lbl1 .setBounds (29 , 76 , 360 , 40 );
71
+ Lbl1 .setFont (new Font ("Consolas" , Font .PLAIN , 20 ));
72
+ // Lbl1.
73
+ contentPane .add (Lbl1 );
74
+ Lbl1 .setVisible (true );
75
+
76
+ Lbl2 = new JLabel ("This changes the color of the background" );
77
+ Lbl2 .setBounds (0 , 0 , 319 , 40 );
78
+ Lbl2 .setFont (new Font ("Consolas" , Font .PLAIN , 12 ));
79
+ contentPane .add (Lbl2 );
80
+ Lbl2 .setVisible (false );
81
+
82
+ RedLbl = new JLabel ("Red" );
83
+ RedLbl .setBounds (19 , 60 , 32 , 14 );
84
+ contentPane .add (RedLbl );
85
+ RedLbl .setVisible (false );
86
+
87
+ GreenLbl = new JLabel ("Green" );
88
+ GreenLbl .setBounds (10 , 90 , 41 , 14 );
89
+ contentPane .add (GreenLbl );
90
+ GreenLbl .setVisible (false );
91
+
92
+ BlueLbl = new JLabel ("Blue" );
93
+ BlueLbl .setBounds (19 , 124 , 32 , 14 );
94
+ contentPane .add (BlueLbl );
95
+ BlueLbl .setVisible (false );
96
+
97
+ RSlider = new JSlider (JSlider .HORIZONTAL , 0 , 255 , 0 );
98
+ RSlider .setBounds (61 , 51 , 200 , 23 );
99
+ contentPane .add (RSlider );
100
+ RSlider .setVisible (false );
101
+ RSlider .setValue (R ); // set the current R value of the slider to the R
102
+ // value of the background
103
+ RSlider .addChangeListener (new ChangeListener () {
104
+ public void stateChanged (ChangeEvent event ) {
105
+ // SliderAction();
106
+ JSlider source = (JSlider ) event .getSource ();
107
+ R = (int ) source .getValue ();
108
+ // System.out.println("Red = " + R);// for debugging
109
+ Cpanel .setBackground (new Color (R , G , B )); // preview pane
110
+ MyProject2 .contentPane .setBackground (new Color (R , G , B )); // change
111
+ // the
112
+ // background
113
+ // color
114
+ // of
115
+ // the
116
+ // contentPane
117
+ // of
118
+ // the
119
+ // Main
120
+ // class
121
+ RGBTxtField .setText ("(" + R + "," + G + "," + B + ")" );
122
+
123
+ }
124
+
125
+ });
126
+
127
+ GSlider = new JSlider (JSlider .HORIZONTAL , 0 , 255 , 0 );
128
+ GSlider .setBounds (61 , 81 , 200 , 23 );
129
+ contentPane .add (GSlider );
130
+ GSlider .setVisible (false );
131
+ GSlider .setValue (G ); // set the current G value of the slider to the G
132
+ // value of the background
133
+ GSlider .addChangeListener (new ChangeListener () {
134
+ public void stateChanged (ChangeEvent event ) {
135
+ JSlider source = (JSlider ) event .getSource ();
136
+ G = (int ) source .getValue ();
137
+ // System.out.println("Green = " + G); // for debugging
138
+ Cpanel .setBackground (new Color (R , G , B )); // preview pane
139
+ MyProject2 .contentPane .setBackground (new Color (R , G , B )); // change
140
+ // the
141
+ // background
142
+ // color
143
+ // of
144
+ // the
145
+ // contentPane
146
+ // of
147
+ // the
148
+ // Main
149
+ // class
150
+ RGBTxtField .setText ("(" + R + "," + G + "," + B + ")" );
151
+ }
152
+
153
+ });
154
+
155
+ BSlider = new JSlider (JSlider .HORIZONTAL , 0 , 255 , 0 );
156
+ BSlider .setBounds (61 , 115 , 200 , 23 );
157
+ contentPane .add (BSlider );
158
+ BSlider .setVisible (false );
159
+ BSlider .setValue (B ); // set the current B value of the slider to the B
160
+ // value of the background
161
+ BSlider .addChangeListener (new ChangeListener () {
162
+ public void stateChanged (ChangeEvent event ) {
163
+ JSlider source = (JSlider ) event .getSource ();
164
+ B = (int ) source .getValue ();
165
+ // System.out.println("Blue = " + B);// for debugging
166
+ Cpanel .setBackground (new Color (R , G , B )); // preview pane
167
+ MyProject2 .contentPane .setBackground (new Color (R , G , B )); // change
168
+ // the
169
+ // background
170
+ // color
171
+ // of
172
+ // the
173
+ // contentPane
174
+ // of
175
+ // the
176
+ // Main
177
+ // class
178
+ RGBTxtField .setText ("(" + R + "," + G + "," + B + ")" );
179
+ }
180
+
181
+ });
182
+
183
+ this .setDefaultCloseOperation (JFrame .HIDE_ON_CLOSE );
184
+ this .setResizable (false );
185
+ this .setLocationRelativeTo (null );
186
+ this .pack ();
187
+ this .setVisible (true );
188
+
189
+ }
190
+
191
+ // method for generate menu
192
+ public void generateMenu () {
193
+ menuBar = new JMenuBar ();
194
+
195
+ JMenu Background = new JMenu ("Background" );
196
+
197
+ JMenuItem Color = new JMenuItem ("Color" );
198
+
199
+ Color .addActionListener (new ActionListener () {
200
+ public void actionPerformed (ActionEvent bc ) {
201
+ Lbl1 .setVisible (false ); // make this 'disapear' when the
202
+ // menuItem is clicked
203
+
204
+ Lbl2 .setVisible (true );
205
+ RedLbl .setVisible (true );
206
+ GreenLbl .setVisible (true );
207
+ BlueLbl .setVisible (true );
208
+
209
+ Cpanel .setVisible (true );
210
+ RGBTxtField .setVisible (true );
211
+ RSlider .setVisible (true );
212
+ GSlider .setVisible (true );
213
+ BSlider .setVisible (true );
214
+
215
+ }
216
+ });
217
+
218
+ // add menuItems to menus
219
+ Background .add (Color );
220
+
221
+ menuBar .add (Background );
222
+
223
+ }
224
+ }
0 commit comments