- import java.applet.Applet;
- import java.awt.*;
- import java.awt.event.*;
- public class RandomRectangles extends Applet{
- private static Color[] colors = {Color.white,Color.black,Color.blue,Color.red,
- Color.yellow,Color.orange,Color.cyan,Color.pink,Color.magenta,Color.green};
- private int numRects = 10;
- private boolean fill = false, raise = false, round = false, threeD = false;
- //Applet程序初始化
- public void init(){
- Button rectsBtn = new Button("rectangles");
- Button roundBtn = new Button("round rectangles");
- Button threeDBtn = new Button("3D rectangles");
- Checkbox fillCheckbox = new Checkbox("fill");
- add(rectsBtn);
- add(roundBtn);
- add(threeDBtn);
- add(fillCheckbox);
- //为Button添加点击事件
- rectsBtn.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent event){
- round = false;
- threeD = false;
- RandomRectangles.this.repaint();
- }
- });
- roundBtn.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent event){
- round = true;
- threeD = false;
- RandomRectangles.this.repaint();
- }
- });
- threeDBtn.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent event){
- round = false;
- threeD = true;
- RandomRectangles.this.repaint();
- }
- });
- //为Checkbox添加事件
- fillCheckbox.addItemListener(new ItemListener(){
- public void itemStateChanged(ItemEvent event){
- fill = ((Checkbox)(event.getSource())).getState();
- }
- });
- }
- public void paint(Graphics g){
- for(int i=0;i<numRects;i++){
- Point lhc = randomPoint();
- Dimension size = randomDimenstion();
- g.setColor(colors[(int)(Math.random()*10)]);
- if(round){
- if(fill){
- g.fillRoundRect(lhc.x,lhc.y,size.width,size.height,
- (int)(Math.random()*250),
- (int)(Math.random()*250));
- }
- else{
- g.drawRoundRect(lhc.x,lhc.y,size.width,size.height,
- (int)(Math.random()*250),
- (int)(Math.random()*250));
- }
- }
- else if(threeD){
- g.setColor(Color.lightGray);
- if(fill){
- g.fill3DRect(lhc.x,lhc.y,size.width,size.height,raise);
- }
- else{
- g.draw3DRect(lhc.x,lhc.y,size.width,size.height,raise);
- }
- }
- else{
- if(fill){
- g.fillRect(lhc.x,lhc.y,size.width,size.height);
- }
- else{
- g.drawRect(lhc.x,lhc.y,size.width,size.height);
- }
- }
- raise = raise ? false : true;
- }
- }
- //Dimension 类封装单个对象中组件的宽度和高度(精确到整数)
- private Dimension randomDimenstion(){
- return new Dimension((int)(Math.random()*250),
- (int)(Math.random()*250));
- }
- //返回一个随机点
- private Point randomPoint(){
- return new Point((int)(Math.random()*250),
- (int)(Math.random()*250));
- }
- }
在同个文件夹创建HTML文件
- <title>Applet Title</title>
- <tr>
- <applet code="RandomRectangles" width=500 height=500>
- </applet>
- <tr>