GeSHi (java):
/*--------------------------------------------------------------------------
DrawLine class
*****************
By: deAppel http://www.engineeringserver.com - http://www.javaforums.net
Contact: info [@] engineeringserver.com
Version: 29/07/2008
"*****************
Note: a very basic demo that shows how to draw on a JPanel like a paint application
//----------------------------------------------------------------------*/
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
int positionX1 = 0;
int positionY1 = 0;
int positionX2 = 0;
int positionY2 = 0;
int maxLines = 1000;
int currentLines = 0;
int[][] drawLines = new int[maxLines][4];
public DrawLine(){
setLayout(null);
p.addMouseListener(this);
p.setBounds(0,0,800,600);
add(p);
setTitle("www.engineeringserver.com - Basic paint application");
setSize(800,600);
setResizable(false);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main
(String[] args
){ DrawLine DL = new DrawLine();
}
super.paintComponents(g);
for(int i = 0; i < al.size(); i++){
g.drawLine(drawLines[i][0],drawLines[i][1],drawLines[i][2],drawLines[i][3]);
}
}
}
drawLines[currentLines][0] = positionX1 = e.getX();
drawLines[currentLines][1] = positionY1 = e.getY();
}
drawLines[currentLines][2] = positionX2 = e.getX();
drawLines[currentLines][3] = positionY2 = e.getY();
al.add(drawLines);
currentLines++;
repaint();
}
}
Created by GeSHI 1.0.7.20
examplejust a sad looking drawing because i've only supported the drawLines() function so i cannot draw any ovals yet but that can be easily done if you modify my code a bit.

Java paint application