Java绘图工具种类繁多,哪种最适合你的项目需求呢?
- 后端开发
- 2025-09-20
- 7
Java 是一种功能强大的编程语言,它提供了多种绘图工具,可以用于创建图形用户界面(GUI)、绘制图表、图像处理等,以下是一些常用的 Java 绘图工具及其使用方法:

Java Swing
Java Swing 是 Java 的一个 GUI 工具包,它提供了丰富的绘图组件和功能。
| 组件 | 描述 |
|---|---|
| JPanel | 用于绘制图形的容器 |
| Graphics2D | 用于绘制图形的类 |
| AffineTransform | 用于变换图形的类 |
示例代码:
import javax.swing.*; import java.awt.*; public class DrawExample extends JPanel { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.setColor(Color.BLUE); g2d.fillRect(50, 50, 100, 100); g2d.setColor(Color.RED); g2d.fillOval(150, 150, 100, 100); } public static void main(String[] args) { JFrame frame = new JFrame("Draw Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new DrawExample()); frame.setSize(300, 300); frame.setVisible(true); } }
Java AWT
Java AWT 是 Java 的另一个 GUI 工具包,它也提供了绘图功能。
| 组件 | 描述 |
|---|---|
| Canvas | 用于绘图的组件 |
| Graphics | 用于绘制图形的类 |
示例代码:
import javax.swing.*; import java.awt.*; public class DrawExample extends Canvas { @Override public void paint(Graphics g) { super.paint(g); g.setColor(Color.BLUE); g.fillRect(50, 50, 100, 100); g.setColor(Color.RED); g.fillOval(150, 150, 100, 100); } public static void main(String[] args) { JFrame frame = new JFrame("Draw Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new DrawExample()); frame.setSize(300, 300); frame.setVisible(true); } }
JavaFX
JavaFX 是 Java 的最新 GUI 工具包,它提供了更丰富的绘图功能。

| 组件 | 描述 |
|---|---|
| Shape | 用于绘制形状的类 |
| Path | 用于绘制路径的类 |
| Paint | 用于绘制颜色的类 |
示例代码:
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.shape.Circle; import javafx.scene.shape.Rectangle; import javafx.scene.paint.Color; import javafx.stage.Stage; public class DrawExample extends Application { @Override public void start(Stage primaryStage) { Pane root = new Pane(); root.getChildren().addAll( new Rectangle(50, 50, 100, 100, Color.BLUE), new Circle(150, 150, 50, Color.RED) ); Scene scene = new Scene(root, 300, 300); primaryStage.setScene(scene); primaryStage.setTitle("Draw Example"); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
FAQs
Q1:Java Swing 和 Java AWT 有什么区别?
A1:Java Swing 和 Java AWT 都是 Java 的 GUI 工具包,但 Swing 是 AWT 的扩展,提供了更多的功能和更好的性能,Swing 使用组件而不是 AWT 中的轻量级组件,这使得 Swing 在绘制和布局方面更加灵活。
Q2:JavaFX 和 Java Swing 有什么区别?
A2:JavaFX 和 Java Swing 都是 Java 的 GUI 工具包,但 JavaFX 是 Java Swing 的替代品,JavaFX 提供了更现代的 UI 组件和更好的性能,同时支持更多的图形和动画效果,JavaFX 还提供了更好的跨平台支持,而 Swing 则更适用于传统的桌面应用程序。
