/**
* @(#)TestApplet2.java
*
* TestApplet2 Applet application
*
* @author
* @version 1.00 2009/2/20
*/
import java.awt.*;
import java.applet.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JApplet;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseMotionAdapter;
public class TestApplet2 extends JApplet {
private int pointCount = 0; // count number of points
// array of 2 java.awt.Point references
private Point points[] = new Point[ 2 ];
private boolean p0Exists = false;
private boolean p1Exists = false;
private int r = 8;
public void init() {
JFrame mainframe = new JFrame();
TestApplet2 paintPanel = new TestApplet2();
mainframe.add(paintPanel, BorderLayout.CENTER);
JPanel bottomPanel = new JPanel();
//label 1
JLabel label1 = new JLabel("1. Click in two Locations.");
label1.setBackground(Color.CYAN);
label1.setOpaque(true);
bottomPanel.add(label1, BorderLayout.SOUTH); //add label to JPanel
//label 2
JLabel label2 = new JLabel("2. Drag the points.");
label2.setBackground(Color.YELLOW);
label2.setOpaque(true);
bottomPanel.add(label2, BorderLayout.SOUTH);
mainframe.add(bottomPanel, BorderLayout.SOUTH);
}
public TestApplet2()
{
super();
this.setBackground( Color.WHITE );
// handle frame mouse event
addMouseListener(
new MouseAdapter() // anonymous inner class
{
// define a point and repaint
public void mousePressed( MouseEvent event )
{
if ( !p0Exists )
{
// create point0
points[ 0 ] = new Point( event.getX(), event.getY() );
//System.out.println("Point 0 created: " + points[ 0 ] );
p0Exists = true;
repaint();
} else if ( !p1Exists )
{
// create point1
points[ 1 ] = new Point( event.getX(), event.getY() );
//System.out.println("Point 1 created: " + points[ 1 ] );
p1Exists = true;
repaint();
}
} // end method mousePressed
} // end anonymous inner class
); // end call to addMouseMotionListener
// handle frame mouse motion event
addMouseMotionListener(
new MouseMotionAdapter() // anonymous inner class
{
// drag the point and repaint
public void mouseDragged( MouseEvent event )
{
//System.out.println("Mouse dragged: x=" + event.getX() + " y=" + event.getY() );
if ( p0Exists )
{
if ( Math.abs(points[ 0 ].x - event.getX()) < r
&& Math.abs(points[ 0 ].y - event.getY()) < r )
{
// set new coordinates for point0
points[ 0 ] = new Point( event.getX(), event.getY() );
repaint();
}
}
if ( p1Exists )
{
if ( Math.abs(points[ 1 ].x - event.getX()) < r
&& Math.abs(points[ 1 ].y - event.getY()) < r )
{
// set new coordinates for point1
points[ 1 ] = new Point( event.getX(), event.getY() );
repaint();
}
}
} // end method mouseDragged
} // end anonymous inner class
); // end call to addMouseMotionListener
} // end TestApplet2 constructor
// draw oval in a 4-by-4 bounding box at specified location on window
public void paintComponent( Graphics g )
{
this.paintComponent( g ); // clears drawing area
if ( p0Exists )
{
g.drawOval( points[ 0 ].x - r/2, points[ 0 ].y - r/2, r, r );
g.drawString("Point0", points[ 0 ].x, points[ 0 ].y - 3*r );
g.drawString("x=" + points[ 0 ].x + " y=" + points[ 0 ].y,
points[ 0 ].x, points[ 0 ].y - r );
}
if ( p1Exists )
{
g.drawOval( points[ 1 ].x - r/2, points[ 1 ].y - r/2, r, r );
g.drawString("Point1", points[ 1 ].x, points[ 1 ].y - 3*r );
g.drawString("x=" + points[ 1 ].x + " y=" + points[ 1 ].y,
points[ 1 ].x, points[ 1 ].y - r );
}
} // end method paint
} // end class TestApplet2 |