Painter.java
// Fig. 14.34: Painter.java // Testing PaintPanel. import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.Point; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import javax.swing.JPanel; class PaintPanel extends JPanel { private int pointCount = 0; // count number of points // array of 10000 java.awt.Point references private Point[] points = new Point[ 10000 ]; // set up GUI and register mouse event handler public PaintPanel() { // handle frame mouse motion event addMouseMotionListener( new MouseMotionAdapter() // anonymous inner class { // store drag coordinates and repaint public void mouseDragged( MouseEvent event ) { if ( pointCount < points.length ) { points[ pointCount ] = event.getPoint(); // find point ++pointCount; // increment number of points in array repaint(); // repaint JFrame } // end if } // end method mouseDragged } // end anonymous inner class ); // end call to addMouseMotionListener } // end PaintPanel constructor // draw ovals in a 4-by-4 bounding box at specified locations on window public void paintComponent( Graphics g ) { super.paintComponent( g ); // clears drawing area // draw all points in array for ( int i = 0; i < pointCount; i++ ) g.fillOval( points[ i ].x, points[ i ].y, 4, 4 ); } // end method paintComponent } // end class PaintPanel public class Painter { public static void main( String[] args ) { // create JFrame JFrame application = new JFrame( "A simple paint program" ); PaintPanel paintPanel = new PaintPanel(); // create paint panel application.add( paintPanel, BorderLayout.CENTER ); // in center // create a label and place it in SOUTH of BorderLayout application.add( new JLabel( "Drag the mouse to draw" ), BorderLayout.SOUTH ); application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); application.setSize( 400, 200 ); // set frame size application.setVisible( true ); // display frame } // end main } // end class Painter
Maintained by John Loomis, updated Sat Jun 20 11:32:38 2015