Java Swing 是 Java 的一种图形用户界面工具包,它允许开发者创建出具有丰富图形界面和交互功能的桌面应用程序。在这个例子中,我们将使用 Swing 库来绘制一个简单的玫瑰花图形。以下是一个基础的示例代码,展示了如何用 Java Swing 来绘制一个二维的玫瑰花。
import javax.swing.*;
import java.awt.*;
public class RoseFlower extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int centerX = getWidth() / 2;
int centerY = getHeight() / 2;
int petals = 10; // 玫瑰花瓣的数量
int petalWidth = 20; // 玫瑰花瓣的宽度
int petalHeight = 30; // 玫瑰花瓣的高度
int angle = 360 / petals; // 每个花瓣之间的角度
Color roseColor = new Color(255, 100, 150); // 玫瑰花的颜色
for (int i = 0; i < petals; i++) {
g.setColor(roseColor);
int x1 = centerX + (int) (petalWidth / 2 * Math.cos(Math.toRadians(angle * i)));
int y1 = centerY + (int) (petalHeight / 2 * Math.sin(Math.toRadians(angle * i)));
int x2 = centerX - (int) (petalWidth / 2 * Math.cos(Math.toRadians(angle * i)));
int y2 = centerY - (int) (petalHeight / 2 * Math.sin(Math.toRadians(angle * i)));
g.fillArc(x2, y2, petalWidth, petalHeight, 0, 180);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Java绘制的玫瑰花");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.add(new RoseFlower());
frame.setVisible(true);
}
}
程序解析
导入包:首先,我们导入必要的包,这里使用了
javax.swing和java.awt。创建
RoseFlower类:这个类继承自JPanel,用于绘制玫瑰花。重写
paintComponent方法:这是关键的方法,用于在面板上绘制图形。在paintComponent方法中,我们首先计算玫瑰花的中心位置,然后定义花瓣的数量、宽度和高度,以及每个花瓣之间的角度。绘制花瓣:使用
fillArc方法绘制每个花瓣。fillArc方法接收五个参数:左上角 x 和 y 坐标、宽度、高度、起始角度和弧度。创建窗口:在
main方法中,创建一个JFrame窗口,设置窗口关闭操作、大小,并将RoseFlower实例添加到窗口中。
运行程序
将上述代码保存到一个名为 RoseFlower.java 的文件中,并使用 Java 编译器编译和运行。程序将弹出一个窗口,显示一个简单的玫瑰花图形。
通过这个简单的示例,你可以了解到 Java Swing 库在图形绘制方面的基本用法。随着你的深入学习,你可以使用更多的图形绘制函数和技巧来创作出更加复杂和精美的图形。
