19.09.2015 Views

Prentice.Hall.Introduction.to.Java.Programming,.Brief.Version.9th.(2014).[sharethefiles.com]

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

624 Chapter 16 Event-Driven <strong>Programming</strong><br />

create/register listener<br />

request focus<br />

request focus<br />

left but<strong>to</strong>n?<br />

right but<strong>to</strong>n?<br />

UP pressed?<br />

DOWN pressed?<br />

8 private CirclePanel canvas = new CirclePanel();<br />

9<br />

10 public ControlCircleWithMouseAndKey() {<br />

11 JPanel panel = new JPanel(); // Use the panel <strong>to</strong> group but<strong>to</strong>ns<br />

12 panel.add(jbtEnlarge);<br />

13 panel.add(jbtShrink);<br />

14<br />

15 this.add(canvas, BorderLayout.CENTER); // Add canvas <strong>to</strong> center<br />

16 this.add(panel, BorderLayout.SOUTH); // Add but<strong>to</strong>ns <strong>to</strong> the frame<br />

17<br />

18 jbtEnlarge.addActionListener(new ActionListener() {<br />

19 @Override<br />

20 public void actionPerformed(ActionEvent e) {<br />

21 canvas.enlarge();<br />

22<br />

23<br />

canvas.requestFocusInWindow();<br />

}<br />

24 });<br />

25<br />

26 jbtShrink.addActionListener(new ActionListener() {<br />

27 @Override<br />

28 public void actionPerformed(ActionEvent e) {<br />

29 canvas.shrink();<br />

30<br />

31<br />

canvas.requestFocusInWindow();<br />

}<br />

32 });<br />

33<br />

34 canvas.addMouseListener(new MouseAdapter() {<br />

35 @Override<br />

36 public void mouseClicked(MouseEvent e) {<br />

37<br />

38<br />

if (e.getBut<strong>to</strong>n() == MouseEvent.BUTTON1)<br />

canvas.enlarge();<br />

39<br />

40<br />

else if (e.getBut<strong>to</strong>n() == MouseEvent.BUTTON3)<br />

canvas.shrink();<br />

41 }<br />

42 });<br />

43<br />

44<br />

45<br />

canvas.setFocusable(true);<br />

canvas.addKeyListener(new KeyAdapter() {<br />

46 @Override<br />

47 public void keyPressed(KeyEvent e) {<br />

48<br />

49<br />

if (e.getKeyCode() == KeyEvent.VK_UP)<br />

canvas.enlarge();<br />

50<br />

51<br />

else if (e.getKeyCode() == KeyEvent.VK_DOWN)<br />

canvas.shrink();<br />

52 }<br />

53 });<br />

54 }<br />

55<br />

56 /** Main method */<br />

57 public static void main(String[] args) {<br />

58 JFrame frame = new ControlCircleWithMouseAndKey();<br />

59 frame.setTitle("ControlCircle");<br />

60 frame.setLocationRelativeTo(null); // Center the frame<br />

61 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />

62 frame.setSize(200, 200);<br />

63 frame.setVisible(true);<br />

64 }<br />

65<br />

66 class CirclePanel extends JPanel { // Inner class<br />

67 private int radius = 5; // Default circle radius

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!