本例演示了如何响应鼠标动作来实现绘图,为使重绘时原先信息不丢失,使用了Vector<T>类来保存所绘制的各条曲线,其中curve对象用于保存每条曲线,而curves对象保存所有绘制的独立曲线。
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyPaint {
public static void main(String[] args) {
new PaintFrame( "JavaPainter" );
}
}
class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
private Vector<Point> curve;
private Vector<Vector<Point>> curves;
private Point ptFrom = new Point();
private Point ptTo = new Point();
MyCanvas() {
curve = new Vector<P