AWT构造矩形,圆角矩形,3D矩形

本文介绍了一个Java Applet应用,展示了如何通过按钮和复选框动态控制矩形的绘制样式,包括颜色、填充、圆角和三维效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

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);

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();
}
});
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));
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值