import java.awt.Point;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JPanel;
public class PaintPanel extends JPanel
{
private int pointCount=0; //count number of points
//array of 10000 java.awet.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[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 addMouseMotion Listener
}//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
g.fillOval(points[i].x, points[i].y,4,4);
}//end method paintComponent
}//end class PaintPanel
------------------------------------------------------------------------------------
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
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 border layout
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
No comments:
Post a Comment