import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Ellipse2D; import javax.swing.JFrame; import javax.swing.JPanel; @SuppressWarnings("serial") public class EggExample extends JPanel { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("Egg Example"); frame.setSize(300, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.getContentPane().add(new EggExample()); } private Ellipse2D.Double egg; private static final double EGG_WIDTH = 30; private static final double EGG_HEIGHT = 50; public EggExample() { egg = new Ellipse2D.Double(0, 0, EGG_WIDTH, EGG_HEIGHT); // add mouse click listener MouseClickListener listener = new MouseClickListener(); addMouseListener(listener); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g.clearRect(0, 0, 300, 300); // Clear the window g2.draw(egg); } // inner class definition private class MouseClickListener extends MouseAdapter { public void mouseClicked(MouseEvent event) { int mouseX = event.getX(); int mouseY = event.getY(); egg.setFrame(mouseX - EGG_WIDTH / 2, mouseY - EGG_HEIGHT / 2, EGG_WIDTH, EGG_HEIGHT); repaint(); } } }