这是此类“绘画”的简单示例:
public static void main ( String[] args ){ Jframe paint = new Jframe (); paint.add ( new JComponent () { private List<Shape> shapes = new ArrayList<Shape> (); private Shape currentShape = null; { MouseAdapter mouseAdapter = new MouseAdapter () { public void mousePressed ( MouseEvent e ) { currentShape = new Line2D.Double ( e.getPoint (), e.getPoint () ); shapes.add ( currentShape ); repaint (); } public void mouseDragged ( MouseEvent e ) { Line2D shape = ( Line2D ) currentShape; shape.setLine ( shape.getP1 (), e.getPoint () ); repaint (); } public void mouseReleased ( MouseEvent e ) { currentShape = null; repaint (); } }; addMouseListener ( mouseAdapter ); addMouseMotionListener ( mouseAdapter ); } protected void paintComponent ( Graphics g ) { Graphics2D g2d = ( Graphics2D ) g; g2d.setPaint ( Color.BLACK ); for ( Shape shape : shapes ) { g2d.draw ( shape ); } } } ); paint.setSize ( 500, 500 ); paint.setLocationRelativeTo ( null ); paint.setVisible ( true );}它会记住所有绘制的形状,只需稍作努力,您就可以扩展它以绘制您喜欢的任何其他形状。



