/** * TypeableFrame.java * * @author Jeff Ondich * @version 2/24/05 * * Demonstrates the KeyListener interface. Type r, g, b, or any other * key to see what happens. */ import java.awt.*; import java.awt.Rectangle; import java.awt.event.*; import javax.swing.*; public class TypeableFrame extends JFrame implements KeyListener { private Color color; public TypeableFrame( String title ) { // Arrange for mouse events to be sent to this window. addKeyListener( this ); // Initialize the window. setSize( 500, 600 ); setLocation( 520, 20 ); setTitle( title ); setBackground( Color.white ); toFront(); setVisible( true ); } public void paint( Graphics g ) { Rectangle r = getBounds(); g.setColor( color ); g.fillOval( r.width / 4, r.height / 4, r.width / 2, r.height / 2 ); } public void keyTyped( KeyEvent e ) { System.out.println( "keyTyped " + e.getKeyChar() ); switch( e.getKeyChar() ) { case 'r': color = Color.red; break; case 'b': color = Color.blue; break; default: color = Color.green; break; } repaint(); } public void keyPressed( KeyEvent e ) { System.out.println( "keyPressed" ); } public void keyReleased( KeyEvent e ) { System.out.println( "keyReleased" ); } public static void main( String[] args ) { TypeableFrame window = new TypeableFrame( "This is typeable" ); // Arrange for the program to shut down when you close the window. window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } }