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));
}
}
分享到:
相关推荐
Java中的圆角矩形绘制是GUI编程中常用的一种图形绘制技术,主要应用于界面设计和图形用户界面的美化。本文将详细解析如何使用Java API来绘制圆角矩形,并通过实例代码进行演示。 首先,Java提供了两种方法来绘制...
### 创建圆角矩形按钮 #### 1. 自定义边界类 首先,我们需要创建一个自定义的`Border`类来实现圆角效果。边界(Border)是Swing中的一个概念,用于定义组件周围的装饰和边缘效果。在本例中,我们将通过继承`Border...
然而,这些方法无法直接创建带有圆角的边框,因此我们需要使用`java.awt.geom.RoundRectangle2D`类来绘制圆角矩形。 3. **绘制圆角边框**: 首先,我们需要创建一个自定义的组件,继承自JPanel,并覆盖`...
这个例子中,我们首先读取PNG图片,然后进行等比例缩放,接着创建一个圆角矩形覆盖整个图像,并应用模糊效果以平滑边缘。最后,我们将处理后的图像保存为新的PNG文件。 请注意,这只是一个基础示例,实际应用中可能...
也可以通过`RoundRect`函数画出带有圆角的矩形。 3. **画线**:画线通常使用`MoveToEx`和`LineTo`函数,先指定起点,然后指定终点,GDI会自动连接两点形成一条直线。在Qt中,可以使用`QPainter`类的`drawLine`方法...
- `drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`绘制具有指定圆角半径的圆角矩形。 - `fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`...
在Java.awt.geom包中,有一系列的类用于创建和操作各种几何图形,包括直线、矩形、圆角矩形、椭圆、圆弧、二次曲线和三次曲线。这些类为开发人员提供了精确的几何形状绘制能力,适用于制作图表、游戏、用户界面等...
`drawRoundRect`方法除了可以绘制圆角矩形,当圆角半径等于矩形边长时,实际上会绘制出一个圆形或圆环。例如,`g.drawRoundRect(0, 0, 50, 50, 50, 50)`会绘制一个半径为25的圆环。 5. 画带颜色的图形: `...
- `drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`:绘制具有圆角的矩形,参数arcWidth和arcHeight定义了矩形四个角的圆弧半径。 5. **事件监听**:为了实现交互功能,如点击...
这个画图板能够提供多种基础图形绘制功能,包括直线、圆形、矩形、橡皮擦、喷枪、椭圆、圆角矩形、弧线以及多边形。在实现过程中,主要涉及到Swing或AWT这两个Java GUI(图形用户界面)库。下面我们将详细讨论这些...
5. **圆角矩形**:通过`drawRoundRect(x, y, width, height, arcWidth, arcHeight)`方法,可以绘制具有指定圆角半径的圆角矩形。 6. **三角形绘制**:三角形通常通过三次调用`drawLine()`方法来实现,连接三个顶点...
3. `drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`:绘制圆角矩形,arcWidth和arcHeight分别控制圆角的半径。 4. `fillRoundRect(int x, int y, int width, int height, int ...
- **圆角矩形**和**椭圆**等其他形状的创建类似,通过对应的`java.awt.geom`包中的类进行实例化,然后使用`Graphics2D`对象进行绘制。 这些基础的图形绘制方法在开发GUI应用程序、游戏或任何需要在屏幕上展示复杂...
最常用的方法是使用`java.awt.Graphics2D`类,它提供了丰富的绘图功能,包括设置形状的轮廓、填充颜色和绘制圆角矩形。 1. **Graphics2D与Shape接口**: `Graphics2D`是`Graphics`类的子类,提供了更高级的绘图...
接着,使用`clip()`方法设置绘图区域为圆角矩形,最后将原始图片绘制在这个区域内,实现了圆角效果。 除了圆角处理,`simplepicture_`可能还提供了其他图片处理功能,如裁剪、缩放、旋转等。裁剪可以通过指定源图像...
类似于`fillRect()`,但创建的是一个填充了颜色的圆角矩形。 这些方法可以结合使用,创建出复杂的图形布局。例如,你可以创建一个自定义的矩形类,然后在`paint`方法中根据实例化对象的属性进行绘制。下面是一个...
- `drawRoundRect()`和`fillRoundRect()`:绘制圆角矩形。 - `drawOval()`和`fillOval()`:绘制椭圆。 - `drawArc()`和`fillArc()`:绘制弧线。 - `drawPolygon()`和`fillPolygon()`:绘制多边形。 - `...
- 圆角矩形:`drawRoundRect()`和`fillRoundRect()`方法,除了矩形的宽高,还需要设置圆角的半径。 ```java g.drawRoundRect(10, 10, 150, 70, 40, 25); // 画圆角矩形边框 g.setColor(Color.blue); g....
- `drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`:绘制一个圆角矩形的边框。 - `fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`:...
- 绘制基本图形组件(直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等)。 - 随笔画功能。 - 橡皮擦功能。 - 添加文字并选择字体。 - 设置画笔颜色和粗细。 #### 三、程序设计...