Java Reference
In-Depth Information
8
private
CirclePanel canvas =
new
CirclePanel();
9
10
public
ControlCircleWithMouseAndKey() {
11 JPanel panel =
new
JPanel();
// Use the panel to group buttons
12 panel.add(jbtEnlarge);
13 panel.add(jbtShrink);
14
15
this
.add(canvas, BorderLayout.CENTER);
// Add canvas to center
16
this
.add(panel, BorderLayout.SOUTH);
// Add buttons to the frame
17
18 jbtEnlarge.addActionListener(
new
ActionListener() {
19 @Override
20
public void
actionPerformed(ActionEvent e) {
21 canvas.enlarge();
22
23 }
24 });
25
26 jbtShrink.addActionListener(
new
ActionListener() {
27 @Override
28
public void
actionPerformed(ActionEvent e) {
29 canvas.shrink();
30
31 }
32 });
33
34 canvas.addMouseListener(
new
MouseAdapter() {
35 @Override
36
create/register listener
canvas.requestFocusInWindow();
request focus
canvas.requestFocusInWindow();
request focus
public void
mouseClicked(MouseEvent e) {
if
(e.getButton() == MouseEvent.BUTTON1)
left button?
37
38 canvas.enlarge();
39
40 canvas.shrink();
41 }
42 });
43
44
45 canvas.addKeyListener(
new
KeyAdapter() {
46 @Override
47
else if
(e.getButton() == MouseEvent.BUTTON3)
right button?
canvas.setFocusable(
true
);
public void
keyPressed(KeyEvent e) {
48
49 canvas.enlarge();
50
51 canvas.shrink();
52 }
53 });
54 }
55
56
/** Main method */
57
public static void
main(String[] args) {
58 JFrame frame =
new
ControlCircleWithMouseAndKey();
59 frame.setTitle(
"ControlCircle"
);
60 frame.setLocationRelativeTo(
null
);
// Center the frame
61 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
62 frame.setSize(
200
,
200
);
63 frame.setVisible(
true
);
64 }
65
66
if
(e.getKeyCode() == KeyEvent.VK_UP)
UP pressed?
else if
(e.getKeyCode() == KeyEvent.VK_DOWN)
DOWN pressed?
class
CirclePanel
extends
JPanel {
// Inner class
67
private int
radius =
5
;
// Default circle radius