21xrx.com
2025-03-21 13:06:13 Friday
文章检索 我的文章 写文章
Java编程之绘制图案
2023-06-15 16:43:22 深夜i     7     0
Java编程 图案绘制 Graphics Graphics2D Path2D 线段 矩形 椭圆形 多边形 辅助线 圆形

在开发Java程序时,经常会有需要在界面上绘制图案的需求,比如绘制简单的几何图形、复杂的艺术图案等。本文将介绍如何使用Java编程实现图案的绘制,并提供实际的代码案例供读者参考。

一、绘制简单的几何图形

绘制简单的几何图形是Java图形编程中最基本的内容。我们可以使用Java中的Graphics和Graphics2D对象来实现对几何形状的绘制,如下面的代码:

import javax.swing.*;
import java.awt.*;
public class SimpleGraphics extends JFrame {
  public SimpleGraphics(){
    add(new MyPanel());
  }
  
  public static void main(String[] args){
    SimpleGraphics frame = new SimpleGraphics();
    frame.setTitle("绘制几何图形");
    frame.setSize(300, 300);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}
class MyPanel extends JPanel{
  protected void paintComponent(Graphics g){
    super.paintComponent(g);
    
    g.drawLine(10, 10, 90, 10);
    g.drawRect(10, 30, 80, 40);
    g.drawOval(10, 80, 80, 40);
  }
}

代码解释:

第1行:导入需要使用的包。

第3-6行:创建一个继承自JFrame的类SimpleGraphics,在构造方法中添加一个继承自JPanel的面板MyPanel。

第8-15行:主函数中创建SimpleGraphics实例,设置标题、大小、居中显示、关闭操作和可见性。

第17-26行:创建MyPanel类,继承自JPanel,重写paintComponent方法,在其中使用传入的Graphics对象绘制线段、矩形和椭圆形。

以上代码可以绘制出以下图形(红色为线段,黑色为矩形,蓝色为椭圆形):

![image](https://cdn.luogu.com.cn/upload/image_hosting/e9v7wibn.png)

二、绘制复杂的艺术图案

除了简单的几何图形,我们还可以使用Java图形编程实现复杂的艺术图案。下面的代码案例中,我们将使用Graphics2D和Path2D对象,绘制一个较为复杂的风车图案。

import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
public class ComplexGraphics extends JFrame{
  public ComplexGraphics(){
    add(new MyPanel());
  }
  
  public static void main(String[] args){
    ComplexGraphics frame = new ComplexGraphics();
    frame.setTitle("绘制风车图案");
    frame.setSize(300, 300);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}
class MyPanel extends JPanel{
  protected void paintComponent(Graphics g){
    super.paintComponent(g);
    
    Graphics2D g2d = (Graphics2D) g;
    
    Path2D path = new Path2D.Double();
    path.moveTo(60, 60);
    path.lineTo(100, 15);
    path.lineTo(140, 60);
    path.lineTo(100, 100);
    path.closePath();
    g2d.draw(path);
    g2d.fill(path);
    
    Line2D line1 = new Line2D.Double(80, 15, 80, 100);
    Line2D line2 = new Line2D.Double(60, 60, 140, 60);
    g2d.draw(line1);
    g2d.draw(line2);
    
    Ellipse2D circle = new Ellipse2D.Double(70, 70, 20, 20);
    g2d.setPaint(Color.BLUE);
    g2d.fill(circle);
  }
}

代码解释:

第1行:导入需要使用的包。

第3-6行:创建一个继承自JFrame的类ComplexGraphics,在构造方法中添加一个继承自JPanel的面板MyPanel。

第8-15行:主函数中创建ComplexGraphics实例,设置标题、大小、居中显示、关闭操作和可见性。

第17-36行:创建MyPanel类,继承自JPanel,重写paintComponent方法,在其中使用Graphics2D和Path2D对象绘制一个风车图案,同时使用Line2D和Ellipse2D对象绘制图案的辅助线和蓝色圆形。

以上代码可以绘制出以下图案(紫色为多边形,黑色为辅助线,蓝色为圆形):

![image](https://cdn.luogu.com.cn/upload/image_hosting/q0hcz6eq.png)

三、关键词

Java编程、图案绘制、Graphics、Graphics2D、Path2D、线段、矩形、椭圆形、多边形、辅助线、圆形

  
  

评论区