import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.Rectangle; public class WheelReinventing extends JPanel { private boolean pressed = false; public static final int WINDOW_WIDTH = 640; public static final int WINDOW_HEIGHT = 480; public static final int BUTTON_WIDTH = 100; public static final int BUTTON_HEIGHT = 30; public static final String BUTTON_TEXT = "Click Me!"; public static final int BUTTON_X = WINDOW_WIDTH / 2 - BUTTON_WIDTH / 2; public static final int BUTTON_Y = WINDOW_HEIGHT / 2 - BUTTON_HEIGHT / 2; public static void main(final String[] args) { JFrame frame = new JFrame("Let's Reinvent the Wheel!"); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setSize(WINDOW_WIDTH, WINDOW_HEIGHT); frame.setLocationRelativeTo(null); WheelReinventing paint = new WheelReinventing(); frame.setContentPane(paint); paint.init(); frame.setVisible(true); } public WheelReinventing() { } public void init() { addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { if (e.getX() >= BUTTON_X && e.getX() <= BUTTON_X + BUTTON_WIDTH && e.getY() >= BUTTON_Y && e.getY() <= BUTTON_Y + BUTTON_HEIGHT) { pressed = true; repaint(); } } public void mouseReleased(MouseEvent e) { pressed = false; repaint(); } }); } public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D)g; g2d.setColor(Color.lightGray); g2d.fill3DRect(BUTTON_X, BUTTON_Y, BUTTON_WIDTH, BUTTON_HEIGHT, !pressed); g2d.setColor(Color.black); g2d.drawString(BUTTON_TEXT, BUTTON_X + 25, BUTTON_Y + 20); } }