Java tutorial
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); } }