-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTileFrame.java
More file actions
42 lines (37 loc) · 1.3 KB
/
TileFrame.java
File metadata and controls
42 lines (37 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// This class is the top-level frame for a set of colored tiles.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TileFrame extends JFrame {
private TilePanel panel;
public TileFrame() {
setSize(400, 400);
setTitle("Fun with Tiles");
setDefaultCloseOperation(EXIT_ON_CLOSE);
panel = new TilePanel(Color.RED);
add(panel, BorderLayout.CENTER);
addColorButtons();
}
private void addColorButtons() {
JPanel p = new JPanel();
p.setBackground(Color.CYAN);
ButtonGroup g = new ButtonGroup();
addButton(p, g, "Green", false, Color.GREEN);
addButton(p, g, "Blue", false, Color.BLUE);
addButton(p, g, "Red", true, Color.RED);
add(p, BorderLayout.NORTH);
}
private void addButton(JPanel p, ButtonGroup g, String name,
boolean selected, final Color color) {
JRadioButton button = new JRadioButton(name, selected);
p.add(button);
g.add(button);
button.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
panel.setColor(color);
}
}
});
}
}