当前位置: 首页 > 图灵资讯 > 技术篇> 使用java 画图

使用java 画图

来源:图灵教育
时间:2023-11-30 17:26:41

使用Java绘图

在计算机编程领域,图形是一种常见的显示方式。使用Java语言,图形可以通过各种库和框架绘制。本文将介绍如何使用Java绘图,并给出相应的代码示例。

一、Java绘图库介绍

Java提供了Java自带的各种绘图库,如AWTT(Abstract Window Toolkit)和Swing,还有一些是第三方库,比如JavaFX和Processing。这些图书馆提供了丰富的绘图功能,可以满足不同的需求。

AWT是Java最早的绘图库之一,提供基本的绘图功能,包括绘制线条、矩形、椭圆等基本形状,以及文本绘制。Swing是AWT的扩展,提供了更丰富的组件和界面绘制功能,可以很容易地创建图形界面应用程序。

JavaFX是Java正式推出的新一代图形库,提供更强大、更现代的绘图功能,支持3D绘图、动画效果等。Processing是一个专门用于创意编程和可视化的图书馆,也可以用于绘图,提供简单易用的API。

二、用AWT绘制图形

AWT提供Canvas类,可用于绘制图形。以下是一个画红色矩形的简单例子:

import java.awt.*;public class AwtExample extends Canvas {    public void paint(Graphics g) {        g.setColor(Color.RED);        g.fillRect(50, 50, 200, 100);    }    public static void main(String[] args) {        Frame frame = new Frame();        frame.add(new AwtExample());        frame.setSize(300, 200);        frame.setVisible(true);    }}

以上代码创建了继承自Canvas的Awtexample,重写了Paint方法,用Graphics对象绘制了红色矩形。在main方法中创建了一个Frame,将Awtexample实例添加到Frame中,并设置Frame的大小和可见性。

操作上述代码,您可以看到一个显示红色矩形的窗口。

三、用Swing绘制图形

Swing提供了更丰富、更灵活的绘图功能,可以通过继承JPanel来创建自定义的绘图组件。以下是一个用Swing绘制图形的例子,绘制了一个蓝色的圆:

import javax.swing.*;import java.awt.*;public class SwingExample extends JPanel {    public void paintComponent(Graphics g) {        super.paintComponent(g);        g.setColor(Color.BLUE);        g.fillOval(50, 50, 100, 100);    }    public static void main(String[] args) {        JFrame frame = new JFrame();        frame.add(new SwingExample());        frame.setSize(200, 200);        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setVisible(true);    }}

以上代码创建了一个继承自JPanel的类Swingexample,重写了paintcomponent方法,用Graphics对象绘制了一个蓝色圆。在main方法中创建了一个JFrame,将Swingexample实例添加到JFrame中,并设置了JFrame的大小、关闭操作和可见性。

通过操作上述代码,您可以看到一个显示蓝色圆的窗口。

四、用JavaFX绘制图形

JavaFX提供了一个更强大和现代的绘图功能,可以使用FXML和CSS来定义界面风格。以下是一个使用JavaFX绘制图形的示例,绘制了一个绿色矩形:

import javafx.application.Application;import javafx.scene.Scene;import javafx.scene.layout.StackPane;import javafx.scene.paint.Color;import javafx.scene.shape.Rectangle;import javafx.stage.Stage;public class JavaFXExample extends Application {    @Override    public void start(Stage primaryStage) {        Rectangle rectangle = new Rectangle(50, 50, 200, 100);        rectangle.setFill(Color.GREEN);        StackPane root = new StackPane();        root.getChildren().add(rectangle);        Scene scene = new Scene(root, 300, 200);        primaryStage.setTitle("JavaFX Example");        primaryStage.setScene(scene);        primaryStage.show();    }    public static void main(String[] args) {        launch(args);    }}