// David Greenstein // March 13, 2013 // SimpleStamper.java // This program stamps rectangles and ovals using the mouse and meta key. // Shift-mouse clears the window. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SimpleStamper { JFrame frame; DisplayStamp canvas; public static void main(String[] args) { SimpleStamper ss = new SimpleStamper(); ss.Run(); } public void Run() { // Create a frame to hold everything frame = new JFrame ("Hear Mouse"); 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 DisplayStamp(); // create a panel to draw on canvas.setBackground(Color.lightGray); frame.addMouseListener(canvas); // connects the MouseListerner to the panel window // Put frame together frame.getContentPane().add(canvas); // puts panel on frame frame.setVisible(true); } } // end class SimpleStamper class DisplayStamp extends JPanel implements MouseListener { DisplayStamp() { setBackground(Color.black); addMouseListener(this); } public void mousePressed(MouseEvent evt) { if ( evt.isShiftDown() ) { repaint(); return; } int x = evt.getX(); int y = evt.getY(); Graphics g = getGraphics(); if ( evt.isMetaDown() ) { 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 { g.setColor(Color.red); g.fillRect( x - 30, y - 15, 60, 30 ); g.setColor(Color.black); g.drawRect( x - 30, y - 15, 60, 30 ); } g.dispose(); } // end mousePressed(); public void mouseEntered(MouseEvent evt) { } public void mouseExited(MouseEvent evt) { } public void mouseClicked(MouseEvent evt) { } public void mouseReleased(MouseEvent evt) { } }