21xrx.com
2024-05-20 16:44:37 Monday
登录
文章检索 我的文章 写文章
Java编程之绘制图案
2023-06-15 16:43:22 深夜i     --     --
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、线段、矩形、椭圆形、多边形、辅助线、圆形

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复