当前位置:首页 > Java

java如何画一个矩形

2026-03-04 03:08:40Java

使用Graphics类绘制矩形

在Java中,可以通过java.awt.Graphics类来绘制矩形。Graphics类提供了drawRectfillRect方法,分别用于绘制空心矩形和填充矩形。

import javax.swing.*;
import java.awt.*;

public class DrawRectangle extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        // 绘制空心矩形
        g.drawRect(50, 50, 100, 80);
        // 绘制填充矩形
        g.fillRect(200, 50, 100, 80);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("绘制矩形示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 300);
        frame.add(new DrawRectangle());
        frame.setVisible(true);
    }
}

使用Graphics2D类绘制矩形

Graphics2DGraphics的子类,提供了更丰富的绘图功能,例如设置线条宽度、颜色渐变等。

import javax.swing.*;
import java.awt.*;

public class DrawRectangle2D extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        // 设置线条宽度
        g2d.setStroke(new BasicStroke(3));
        // 绘制空心矩形
        g2d.drawRect(50, 50, 100, 80);
        // 设置填充颜色
        g2d.setColor(Color.BLUE);
        // 绘制填充矩形
        g2d.fillRect(200, 50, 100, 80);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Graphics2D绘制矩形示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 300);
        frame.add(new DrawRectangle2D());
        frame.setVisible(true);
    }
}

使用JavaFX绘制矩形

JavaFX提供了更现代的图形库,可以通过javafx.scene.shape.Rectangle类绘制矩形。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class DrawRectangleFX extends Application {
    @Override
    public void start(Stage primaryStage) {
        Pane pane = new Pane();
        // 绘制空心矩形
        Rectangle rect1 = new Rectangle(50, 50, 100, 80);
        rect1.setFill(null);
        rect1.setStroke(Color.BLACK);
        // 绘制填充矩形
        Rectangle rect2 = new Rectangle(200, 50, 100, 80);
        rect2.setFill(Color.BLUE);
        pane.getChildren().addAll(rect1, rect2);

        Scene scene = new Scene(pane, 400, 300);
        primaryStage.setTitle("JavaFX绘制矩形示例");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

使用BufferedImage绘制矩形

如果需要在图像上绘制矩形,可以使用BufferedImageGraphics2D

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;

public class DrawRectangleImage {
    public static void main(String[] args) {
        // 创建一个BufferedImage对象
        BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = image.createGraphics();
        // 设置背景色
        g2d.setColor(Color.WHITE);
        g2d.fillRect(0, 0, 400, 300);
        // 绘制空心矩形
        g2d.setColor(Color.BLACK);
        g2d.drawRect(50, 50, 100, 80);
        // 绘制填充矩形
        g2d.setColor(Color.BLUE);
        g2d.fillRect(200, 50, 100, 80);
        g2d.dispose();

        // 显示图像
        JFrame frame = new JFrame("BufferedImage绘制矩形示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new JLabel(new ImageIcon(image)));
        frame.pack();
        frame.setVisible(true);
    }
}

使用Java 2D API绘制圆角矩形

Graphics2D还支持绘制圆角矩形,通过drawRoundRectfillRoundRect方法实现。

import javax.swing.*;
import java.awt.*;

public class DrawRoundRectangle extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        // 绘制空心圆角矩形
        g2d.drawRoundRect(50, 50, 100, 80, 20, 20);
        // 绘制填充圆角矩形
        g2d.setColor(Color.BLUE);
        g2d.fillRoundRect(200, 50, 100, 80, 20, 20);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("绘制圆角矩形示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 300);
        frame.add(new DrawRoundRectangle());
        frame.setVisible(true);
    }
}

java如何画一个矩形

标签: 矩形画一
分享给朋友:

相关文章

css制作圆角矩形

css制作圆角矩形

使用 border-radius 属性 在 CSS 中,border-radius 是制作圆角矩形的主要属性。该属性接受一个或多个值,用于定义元素的圆角半径。基本语法如下: .rounded-rec…

css制作圆角矩形

css制作圆角矩形

使用 border-radius 属性 在 CSS 中,border-radius 是制作圆角矩形的主要属性。通过调整该属性的值,可以控制圆角的弧度大小。 .rounded-rectangle {…

css制作矩形

css制作矩形

使用CSS创建矩形 在CSS中,矩形是最基础的形状之一,可以通过多种方式实现。以下是几种常见的方法: 使用width和height属性 通过设置width和height属性,可以定义一个矩形的基本…

php实现矩形周长

php实现矩形周长

PHP 计算矩形周长的方法 矩形周长的计算公式为: 周长 = 2 × (长 + 宽) 以下是几种实现方式: 直接计算 通过定义长和宽变量,直接套用公式输出结果: $length = 1…

用vue实现矩形

用vue实现矩形

使用Vue实现矩形 在Vue中实现矩形可以通过多种方式,包括使用HTML的<div>元素结合CSS样式,或者使用Canvas或SVG进行绘制。以下是几种常见的实现方法: 使用HTML和C…

css制作圆角矩形

css制作圆角矩形

使用 border-radius 属性 在 CSS 中,border-radius 属性是制作圆角矩形的主要方法。该属性可以接受一个或多个值,用于定义矩形的四个角的圆角半径。 .rounded-re…