// Fig. 13.22: KeyDemo.java - Demonstrating keystroke events. import java.lang.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Orbit extends JFrame implements KeyListener { private String line0 = "", line1 = ""; private JTextArea textArea; private OrbitPanel ControlPane; // public final int sSh=960, sSv=720; // set up GUI public Orbit() { super( "Orbit" ); Container container = getContentPane(); container.setLayout(new BorderLayout()); ControlPane = new OrbitPanel(1); // set up JTextArea textArea = new JTextArea( 10, 15 ); textArea.setText( "Move spacecraft into geosynchronous orbit!" ); textArea.setEnabled( false ); textArea.setDisabledTextColor( Color.BLACK ); textArea.setBounds(new Rectangle(1,400,300,300)); getContentPane().add( textArea, BorderLayout.EAST ); ControlPane.setBackground(Color.white); // ControlPane is an instance of JPanel // ControlPane.setBorder(border1); ControlPane.setDebugGraphicsOptions(0); // ControlPane.setBounds(new Rectangle(-1, 0, 300, 60)); //ControlPane.setLayout(null); addKeyListener( this ); // allow frame to process Key events setSize( 960, 720 ); setVisible( true ); this.getContentPane().add(ControlPane, BorderLayout.CENTER); enableEvents(AWTEvent.WINDOW_EVENT_MASK); Thread t = new Thread(ControlPane); t.start(); //Start the orbit rendering thread } // end KeyDemo constructor // Invoked when a key has been pressed. public void keyPressed( KeyEvent event ) { line0 = "Key Pressed: " + event.getKeyChar()+" "+event.getKeyText(event.getKeyCode())+" "+event.getKeyCode(); switch (event.getKeyCode()) { case KeyEvent.VK_LEFT: System.out.print("L"); ControlPane.goLeft(); break; case KeyEvent.VK_UP: System.out.print("U"); ControlPane.goUp(); break; case KeyEvent.VK_RIGHT: System.out.print("R"); ControlPane.goRight(); break; case KeyEvent.VK_DOWN: System.out.print("D"); ControlPane.goDown(); break; case 27: System.out.print("ESC"); break; case 32: System.out.print("SB"); break; default: System.out.print("Key Code" + event.getKeyCode() + "not included. "); break; } textArea.setText( line0 + "\n" + line1 + "\n"); } // Invoked when a key has been released. public void keyReleased( KeyEvent event ) { line1 = "Key Released: " + event.getKeyChar()+" "+event.getKeyText(event.getKeyCode())+" "+event.getKeyCode(); switch (event.getKeyCode()) { case 37: // System.out.print("L"); break; case 38: // System.out.print("U"); break; case 39: // System.out.print("R"); break; case 40: // System.out.print("D"); break; case 27: // System.out.print("ESC"); break; case 32: // System.out.print("SB"); break; default: // System.out.print("Key Code" + event.getKeyCode() + "not included. "); break; } // System.out.print(" "); textArea.setText( line0 + "\n" + line1 + "\n"); } // Invoked when a key has been typed. public void keyTyped( KeyEvent event ) { } public static void main( String args[] ) { Orbit application = new Orbit(); application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } } // end class KeyDemo