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
 
Search WWH ::




Custom Search