当前位置:首页 > Java

java draw如何画圆

2026-03-21 01:44:02Java

使用 Java Graphics 绘制圆形

在 Java 中,可以通过 GraphicsGraphics2D 类绘制圆形。以下是几种常见的方法:

使用 drawOval 方法

Graphics 类提供了 drawOval 方法,用于绘制椭圆或圆形。圆形的绘制需要指定相同的宽度和高度。

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

public class DrawCircle extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawOval(50, 50, 100, 100); // (x, y, width, height)
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Draw Circle");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new DrawCircle());
        frame.setSize(200, 200);
        frame.setVisible(true);
    }
}

使用 fillOval 方法

如果需要填充圆形,可以使用 fillOval 方法:

@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setColor(Color.BLUE);
    g.fillOval(50, 50, 100, 100);
}

使用 Graphics2D 绘制更复杂的圆形

Graphics2D 提供了更多绘图选项,例如设置描边宽度、抗锯齿等:

@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g2d.setStroke(new BasicStroke(3));
    g2d.setColor(Color.RED);
    g2d.drawOval(50, 50, 100, 100);
}

通过 Ellipse2D.Double 绘制圆形

java.awt.geom.Ellipse2D.Double 类可以更精确地控制圆形的位置和大小:

java draw如何画圆

import java.awt.geom.Ellipse2D;

@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    Ellipse2D.Double circle = new Ellipse2D.Double(50, 50, 100, 100);
    g2d.draw(circle);
}

JPanelCanvas 上绘制圆形

以上方法适用于 JPanelCanvas 组件。可以根据需求选择不同的绘图方式。

标签: javadraw
分享给朋友:

相关文章

java如何运行

java如何运行

运行Java程序的基本方法 Java程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

java如何创建包

java如何创建包

创建Java包的步骤 在Java中,包(package)用于组织和管理类文件,避免命名冲突。以下是创建Java包的详细方法: 定义包名 在Java源文件的开头使用package关键字声明包名。包名…

java如何导包

java如何导包

导入包的方法 在Java中,导入包(package)可以通过import语句实现,用于引入其他类或包中的功能。以下是几种常见的导包方式: 导入单个类 import java.util.ArrayL…

java如何处理高并发

java如何处理高并发

Java处理高并发的方法 使用多线程和线程池 Java的java.util.concurrent包提供了线程池(如ThreadPoolExecutor)和并发工具类(如CountDownLatch、C…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…