Skip to content

Commit 76a900f

Browse files
committed
added GUIWithJLIST\src\Preferences.java
1 parent 2833b35 commit 76a900f

File tree

1 file changed

+224
-0
lines changed

1 file changed

+224
-0
lines changed

GUIWithJLIST/src/Preferences.java

+224
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
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

Comments
 (0)