|  
 import java.awt.Container;
 import java.awt.Graphics;
 import java.awt.Point;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 
 import javax.swing.JFrame;
 import javax.swing.JPanel;
 
 public class Main extends JPanel implements KeyListener {
 
 private Point startPoint = new Point(0, 0);
 
 private Point endPoint = new Point(0, 0);
 
 public Main() {
 addKeyListener(this);
 }
 
 public void keyPressed(KeyEvent evt) {
 int keyCode = evt.getKeyCode();
 int d;
 if (evt.isShiftDown())
 d = 5;
 else
 d = 1;
 if (keyCode == KeyEvent.VK_LEFT)
 add(-d, 0);
 else if (keyCode == KeyEvent.VK_RIGHT)
 add(d, 0);
 else if (keyCode == KeyEvent.VK_UP)
 add(0, -d);
 else if (keyCode == KeyEvent.VK_DOWN)
 add(0, d);
 }
 
 public void keyReleased(KeyEvent evt) {
 }
 
 public void keyTyped(KeyEvent evt) {
 }
 
 public boolean isFocusTraversable() {
 return true;
 }
 
 public void add(int dx, int dy) {
 endPoint.x += dx;
 endPoint.y += dy;
 Graphics g = getGraphics();
 g.drawLine(startPoint.x, startPoint.y, endPoint.x, endPoint.y);
 g.dispose();
 startPoint.x = endPoint.x;
 startPoint.y = endPoint.y;
 }
 
 public static void main(String[] args) {
 JFrame frame = new JFrame();
 frame.setTitle("Sketch");
 frame.setSize(300, 200);
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
 Container contentPane = frame.getContentPane();
 contentPane.add(new Main());
 
 frame.setVisible(true);
 }
 }
 
 
 
 
 |