import javax.swing.*; import java.awt.*; import java.awt.event.*; class World extends JComponent implements KeyListener, ActionListener { int count; public void actionPerformed(ActionEvent e) { this.count += 1; System.out.println("Ouch..." + this.count); } // http://silo.cs.indiana.edu:8346/cgi-bin/c212/spr2014/textbook?action=next&pic=seveneleven/image111.jpg // Using Timer events for animation chapter 11 page 533 Timer timer; World() { this.timer = new Timer(1000, this); } void start() { this.timer.start(); } public void keyPressed(KeyEvent e) { int value = e.getKeyCode(); System.out.println("Key pressed: " + (char) value); switch (value) { // http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html#VK_LEFT case KeyEvent.VK_LEFT : System.out.println("Left arrow pressed."); break; case KeyEvent.VK_RIGHT: System.out.println("Right arrow pressed."); break; case KeyEvent.VK_UP : System.out.println("Up arrow pressed."); break; case KeyEvent.VK_DOWN : System.out.println("Down arrow pressed."); break; case KeyEvent.VK_SPACE: System.out.println("Space bar pressed."); break; default: System.out.println("Unknown key pressed."); break; } } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { } public void paintComponent(Graphics g) { // this.count += 1; // System.out.println("I am being called... " + this.count); // g.drawString("Called " + this.count + " times.", 10, 50); g.drawString("Welcome to Tetris!", 50, 50); } }