// David Greenstein
// March 13, 2013
// OtherStamper.java
// This program draws red rectangles and blue ovals with mouse and meta key.
// Window is cleared using shift click.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class OtherStamper implements MouseListener  
{

	private int x, y;
	private boolean rightclick, leftclick;
  
	JFrame frame;
	Paintstuff canvas;

	public OtherStamper ( )   
	{
		x = y = 0;
		rightclick = leftclick = false;
	}
  
	public static void main(String[] args) 
	{
		OtherStamper os = new OtherStamper();
		os.Run();
	}

	public void Run() 
	{
		// Create a frame to hold everything
		frame = new JFrame ("Other Stamper");
		frame.setSize(500, 500);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//frame.setBackground(Color.black);	// only needed if frame is larger than panel
		
		// Define panel to draw on
		canvas = new Paintstuff();		// create a panel to draw on
		canvas.setBackground(Color.lightGray);
		canvas.addMouseListener(this);	// connects the MouseListerner to the panel window
		
		// Put frame together
		frame.getContentPane().add(canvas);	// puts panel on frame
		frame.setVisible(true);
	}

	class Paintstuff extends JPanel 
	{

		Paintstuff()
		{
			setBackground(Color.darkGray);
		}

		public void paintComponent(Graphics g)
		{
			if ( rightclick == true ) 
			{
				g.setColor(Color.blue);
				g.fillOval( x - 30, y - 15, 60, 30 );
				g.setColor(Color.black);
				g.drawOval( x - 30, y - 15, 60, 30 );
			}
			else if ( leftclick == true ) 
			{
				g.setColor(Color.red);
				g.fillRect( x - 30, y - 15, 60, 30 );
				g.setColor(Color.black);
				g.drawRect( x - 30, y - 15, 60, 30 );
			}
			else
				super.paintComponent(g);
		}
	}

	public void mousePressed(MouseEvent evt) 
	{
 		rightclick = leftclick = false;
	 	if ( evt.isShiftDown() ) 
		{
			canvas.repaint();
			return;
	 	}

 		x = evt.getX();
		y = evt.getY();
	
	 	if ( evt.isMetaDown() )
			 rightclick = true;
		else
	 		leftclick = true;

		canvas.repaint();
		return;
	}

	public void mouseEntered(MouseEvent evt) { }
	public void mouseExited(MouseEvent evt) { }
	public void mouseClicked(MouseEvent evt) { }
	public void mouseReleased(MouseEvent evt) { }
}

Back to Lesson 25 Examples

Back to Java Main Page