Graphics2D绘制一个白色背景 并包含一个矩形和5个椭圆形,并且均匀的分布在矩形周围,矩形和各个椭圆形用黑色实现连接起来,椭圆中显示文字测试
时间: 2024-09-26 08:17:46 浏览: 41
在Java中,你可以使用`Graphics2D`类以及它的子类,如`BufferedImage`,来创建这样的图形。以下是一个简单的步骤说明:
1. 首先,你需要导入必要的库:
```java
import java.awt.*;
import javax.swing.*;
import java.io.File;
```
2. 创建一个`BufferedImage`并设置其大小和背景色为白色:
```java
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D) image.getGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, width, height);
```
3. 绘制矩形。假设矩形的位置、宽度和高度如下:
```java
int rectX = ...; // 矩形左上角x坐标
int rectY = ...; // 矩形左上角y坐标
int rectWidth = ...;
int rectHeight = ...;
g2d.setColor(Color.BLACK);
g2d.drawRect(rectX, rectY, rectWidth, rectHeight);
```
4. 计算并绘制五个椭圆形。可以围绕矩形的边缘均匀分布。例如:
```java
double ellipseGap = (image.getWidth() - rectWidth * 2) / 4;
for (int i = 1; i <= 5; i++) {
int ellipseX = rectX + rectWidth + ellipseGap * i;
int ellipseY = ...; // 椭圆中心位置
int ellipseRadiusX = ...; // 横向半径
int ellipseRadiusY = ...; // 纵向半径
g2d.setColor(Color.BLACK);
g2d.drawOval(ellipseX, ellipseY, ellipseRadiusX, ellipseRadiusY);
}
```
5. 在每个椭圆内添加文本。例如:
```java
Font font = new Font("Arial", Font.PLAIN, 16);
String text = "测试";
for (int i = 1; i <= 5; i++) {
g2d.setFont(font);
int textX = ellipseX + ellipseRadiusX + 5; // 文本离椭圆的一侧距离
int textY = ellipseY;
g2d.drawString(text, textX, textY);
}
```
6. 最后保存或显示图像:
```java
try {
File outputImage = new File("output.png");
ImageIO.write(image, "png", outputImage);
} catch (IOException e) {
e.printStackTrace();
}
// 或者直接显示
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new JLabel(new ImageIcon(outputImage)));
frame.pack();
frame.setVisible(true);
```
阅读全文