import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.geom.*; import javax.swing.JOptionPane; import java.awt.Font; import java.awt.font.FontRenderContext; import java.awt.*; /** An applet that lets a user choose a color by specifying the fractions of red, green, and blue. */ public class ColorApplet extends Applet { public ColorApplet() { String input; // ask the user for red, green, blue values input = JOptionPane.showInputDialog("red: betweeen 0.0 and 0.8"); float red = Float.parseFloat(input); input = JOptionPane.showInputDialog("green: between 0.0 and 0.8"); float green = Float.parseFloat(input); input = JOptionPane.showInputDialog("blue: between 0.0 and 0.8"); float blue = Float.parseFloat(input); fillColor = new Color(red, green, blue); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; // select color into graphics context g2.setColor(fillColor); // construct and fill a square whose center is // the center of the window Rectangle square = new Rectangle( (getWidth() - SQUARE_LENGTH) / 2, (getHeight() - SQUARE_LENGTH) / 2, SQUARE_LENGTH, SQUARE_LENGTH); g2.fill(square); Ellipse2D.Double circle = new Ellipse2D.Double( (getWidth() - CIRCLE_RADIUS) / 2, (getHeight() - CIRCLE_RADIUS) / 2, CIRCLE_RADIUS, CIRCLE_RADIUS); Font myfont = new Font("Serif", Font.BOLD, 20); g2.setFont(myfont); g2.setColor(Color.red); g2.draw(circle); g2.fill(circle); g2.setColor(Color.blue); g2.drawString("Designed by: Syed Ahmed", (getWidth() - SQUARE_LENGTH) / 2 , (getHeight() - SQUARE_LENGTH) / 2 +120); g2.setStroke(new BasicStroke(4.0F)); Line2D.Double AB = new Line2D.Double(50,150, 200,150); Ellipse2D.Double circle2 = new Ellipse2D.Double(100,150, 50,50); g2.draw(AB); g2.draw(circle2); } private static final int SQUARE_LENGTH = 100; private static final int CIRCLE_RADIUS = 100; private Color fillColor; }