KeyListener keypressed(keyevent e) keyreleased(keyevent e) keytyped(keyevent e) MouseListener mouseclicked(mouseevent e) mousepressed(mouseevent e) mousereleased(mouseevent e) mouseentered(mouseevent e) mouseexited(mouseevent e) MouseMotionListener mousedragged(mouseevent e) mousemoved(mouseevent e) 15-1 Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-1
KeyListener init addkeylistener addactionlistener addkeylistener addkeylistener( this ); this.addkeylistener( this ); KeyListener public void keytyped( KeyEvent e ) { public void keypressed( KeyEvent e ) { public void keyreleased( KeyEvent e ) { KEY_PRESSED keypressed KEY_RELEASED keyreleased KEY_TYPED keytyped m KEY_TYPED KEY_RELEASED Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-2
15-1 KEY_TYPED KEY_PRESSED SHIFT SHIFT KEY_PRESSED a KEY_ PRESSED a KEY_RELEASED KEY_TYPED A public void keytyped( KeyEvent e ) { public void keypressed( KeyEvent e ) { public void keyreleased( KeyEvent e ) { getkeychar char c = e.getkeychar( ); keytyped public void keytyped( KeyEvent e ) { char c = e.getkeychar( ); System.out.println( "Input Character: " + c ); KEY_PRESSED KEY_RELEASED getkeycode int keycode = e.getkeycode( ); KeyEvent http://www.javasoft.com KeyEvent.VK_HOME KeyEvent.VK_END KeyEvent.VK_PAGE_UP KeyEvent.VK_PAGE_DOWN KeyEvent.VK_UP KeyEvent.VK_DOWN KeyEvent.VK_LEFT KeyEvent.VK_RIGHT KeyEvent.VK_CONTROL Home End Page Up Page Down Control Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-3
KeyEvent.VK_SHIFT KeyEvent.VK_ALT KeyEvent.VK_META Shift Alt Option Meta Return Enter Backspace TAB Escape Java getkeychar Home if public void keypressed( KeyEvent e ) { int keycode = e.getkeycode( ); if ( keycode == KeyEvent.VK_HOME ) { MVC MVC paint keytyped paint keytyped keypressed, keyreleased c paint keytyped java.awt.*; java.awt.event.*; java.applet.*; public class KeyIn extends Applet implements KeyListener { char c; public void init( ) { addkeylistener( this ); c = 'A'; A g.drawstring( "Key In: " + c, 100, 100 ); public void keytyped( KeyEvent e ) { c = e.getkeychar( ); public void keypressed( KeyEvent e ) { public void keyreleased( KeyEvent e ) { Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-4
15-2 MVC Web TAB MouseListener init addmouselistener addmouselistener( this ); // this.addmouselistener( this ); this. addmouselistener Component Applet Component Applet MouseListener public void mouseclicked( MouseEvent e ) { public void mousepressed( MouseEvent e ) { public void mousereleased( MouseEvent e ) { public void mouseentered( MouseEvent e ) { public void mouseexited( MouseEvent e ) { Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-5
mouseclicked public void mouseclicked( MouseEvent e ) { mousepressed public void mousepressed( MouseEvent e ) { MOUSE_PRESSED MOUSE_RELEASED MOUSE_CLICKED mousepressed mousereleased mouseclicked 15-3 public void mouseclicked( MouseEvent e ) { public void mousepressed( MouseEvent e ) { public void mousereleased( MouseEvent e ) { public void mouseentered( MouseEvent e ) { public void mouseexited( MouseEvent e ) { getx gety e x y int x = e.getx( ), y = e.gety( ) ; checked true Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-6
mouseclicked (10, 120 ) ( 40, 140 ) public void mouseclicked( MouseEvent e ) { int x = e.getx( ), y = e.gety( ); if ( x >= 10 && x <= 40 && y >= 120 && y <= 140 ) { checked = true ; else { checked = false ; x y currentx currenty paint java.awt.*; java.awt.event.*; java.applet.*; public class MouseIn extends Applet implements MouseListener { int currentx, currenty; // x y public void init( ) { addmouselistener( this ); currentx=0; currenty=0; ( 0, 0 ) g.drawstring( "Mouse Clicked At x:" + currentx + " y:" + currenty, 50, 100 ); public void mouseclicked( MouseEvent e ) { currentx = e.getx( ); currenty = e.gety( ); public void mousepressed( MouseEvent e ) { public void mousereleased( MouseEvent e ) { public void mouseentered( MouseEvent e ) { public void mouseexited( MouseEvent e ) { 15-4 MVC Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-7
currentx currenty keypressed mouseclicked repaint mycolor mouseentered, mouseexited java.awt.*; java.applet.*; java.awt.event.*; public class BoxMover extends Applet implements KeyListener, MouseListener { int currentx, currenty; Color mycolor; public void init( ) { addkeylistener( this ); addmouselistener( this ); currentx = 100; currenty=100; mycolor = Color.red; // g.setcolor( mycolor ); g.fillrect( currentx, currenty, 50, 50 ); public void keypressed( KeyEvent e ) { switch ( e.getkeycode() ) { case KeyEvent.VK_UP: case KeyEvent.VK_DOWN: currenty -= 5; break; currenty += 5; break; currentx += 5; break; case KeyEvent.VK_RIGHT: case KeyEvent.VK_LEFT: currentx -= 5; break; default: break; public void mouseclicked(mouseevent e) { currentx = e.getx( ); currenty = e.gety( ); public void mouseentered(mouseevent e) { mycolor = Color.red; public void mouseexited(mouseevent e) { mycolor = Color.blue; public void keytyped( KeyEvent e ) { public void keyreleased( KeyEvent e ) { public void mousepressed( MouseEvent e ) { public void mousereleased( MouseEvent e ) { MouseMotionListener init addmousemotionlistener addmousemotionlistener( this ); // MouseMotionListener Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-8
public void mousedragged( MouseEvent e ) { public void mousemoved( MouseEvent e ) { public void mousedragged( MouseEvent e ) { public void mousemoved( MouseEvent e ) { mousepressed startx starty MOUSE_CLICKED mouseclicked MOUSE_PRESSED mousepressed mousedragged endx endy java.awt.*; java.awt.event.*; java.applet.*; public class LineDraw extends Applet implements MouseListener, MouseMotionListener { int startx, starty, endx, endy; x,y public void init( ) { addmouselistener( this ); addmousemotionlistener( this ); startx=0; starty=0; endx=0; endy=0; g.drawline( startx, starty, endx, endy ); // 0 // public void mousepressed( MouseEvent e ) { startx = e.getx( ); starty = e.gety( ); endx = e.getx( ); endy = e.gety( ); Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-9
public void mousedragged( MouseEvent e ) { endx = e.getx( ); endy = e.gety( ); public void mouseclicked( MouseEvent e ) { public void mousereleased( MouseEvent e ) { public void mouseentered( MouseEvent e ) { public void mouseexited( MouseEvent e ) { public void mousemoved( MouseEvent e ) { 15-5 MVC paint drawrect if else if x y endx endy endx starty startx endy startx starty (startx, starty) 15-6 (endx, endy) Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-10
paint LineDraw if ( startx>endx && starty>endy ) { // g.drawrect( endx, endy, startx - endx, starty - endy ); else if ( startx>endx ) { // g.drawrect( endx, starty, startx - endx, endy - starty ); else if ( starty>endy ) { // else { g.drawrect( startx, endy, endx - startx, starty - endy ); // g.drawrect( startx, starty, endx - startx, endy - starty ); 10 startx starty endx endy x y current paint 10 current 0 java.awt.*; java.awt.event.*; java.applet.*; public class LineDrawer extends Applet implements MouseListener, MouseMotionListener { int startx [] = new int[ 10 ], starty [] = new int[ 10 ]; int endx [] = new int[ 10 ], endy[] = new int[ 10 ]; int current = 0; public void init( ) { addmouselistener( this ) ; addmousemotionlistener( this ); for ( int i=0; i<current; i++ ) { g.drawline( startx[ i ], starty[ i ], endx[ i ], endy[ i ] ); public void mousepressed( MouseEvent e ) { if ( current >= startx.length ) { current = 0; startx[ current ] = e.getx( ); starty[ current ] = e.gety( ); endx[ current ] = e.getx( ); endy[ current ] = e.gety( ); current++; repaint(); public void mousedragged( MouseEvent e ) { endx[ current-1 ] = e.getx( ); endy[ current-1 ] = e.gety( ); repaint(); public void mouseclicked( MouseEvent e ) { public void mousereleased( MouseEvent e ) { public void mouseentered( MouseEvent e ) { public void mouseexited( MouseEvent e ) { Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-11
public void mousemoved( MouseEvent e ) { 15-7 10 Modifier Key Meta ALT Shift Control Ctrl Left/Right Macintosh Command Windows Macintosh Option InputEvent isshiftdown( ) iscontroldown( ) ismetadown( ) isaltdown( ) ALT true false if if if ( e.isshiftdown( ) == true ) {... if ( e.isshiftdown( ) ) {... shape int shape ; // Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-12
paint shape paint if ( startx>endx && starty>endy ) { // if ( shape == 1 ) { g.drawrect( endx, endy, startx - endx, starty - endy ); else if ( shape == 2 ) { g.fill3drect( endx, endy, startx - endx, starty - endy, true ); else if ( shape == 3 ) { g.drawoval( endx, endy, startx - endx, starty - endy ); else { g.drawline( startx, starty, endx, endy ); else if ( startx>endx ) {... mousepressed shape shape public void mousepressed( MouseEvent e ) { currentx = e.getx( ); currenty = e.gety( ); shape = ( e.isshiftdown( ) )? 1 : ( e.iscontroldown( ) )? 2 : ( e.ismetadown( ) )? 3 : 4; Macintosh Macintosh Macintosh Web getclickcount public void mouseclicked( MouseEvent e ) { int count = e.getclickcount( ); if ( count == 1 ) { System.out.println( "Single Clicked" ); else if ( count == 2 ) { System.out.println( "Double Clicked" ); Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-13
java.awt.*; java.awt.event.*; java.applet.*; public class KeyIn extends Applet implements KeyListener, ActionListener { Button button; int size = 10; char c = 'A'; public void init( ) { button = new JButton( "Large" ); button.addactionlistener( this ); add( button ); addkeylistener( this ); requestfocus( ); g.setfont( new Font( "Serif", Font.PLAIN, size ) ); g.drawstring( "Key In: " + c, 50, 50 ); public void actionperformed( ActionEvent e ) { size = ( size - 10 + 2 ) % 100 + 10; // 10 requestfocus( ); // public void keytyped( KeyEvent e ) { c = e.getkeychar( ); public void keypressed( KeyEvent e ) { public void keyreleased( KeyEvent e ) { 15-1 switch 200 15-2 RGB Red: 255 Green: 255 Blue: 255 Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-14
15-3 ShapeDrawer 15-4 PolylineDrawer 15-5 BezierDrawer 15-6 15-7 SplineDrawer Copyright by Tatsuo Minohara 2004 Rev. B Dec. 9th Macintosh Java Primer Chapter 15-15