Bootstrap

Java绘图

Java绘图类

  1. Graphics类
    1. Graphics类时所有图形上下问的抽象基类,它允许程序在组件以及闭屏图像上进行绘制,Graphics类封装了Java支持的基本绘图操作所需的状态信息,主要包括颜色,字体,画图,文本,图像等。
    2. Graphics类提供了绘图常用的方法,利用这些方法可以实现直线,矩形,多边形,椭圆,圆弧等形状和文本,图片的绘制操作。另外,在执行这些操作之前,还可以使用相应的方法设置绘图的颜色和字体等状态属性。
  2. Graphics2D类
    1. 使用Graphics类可以完成简单的图形绘制任务,但是它所实现的功能非常有限,如果改变线条粗细,不能对图片使用旋转和模糊效果
    2. Graphics2D类继承Graphics类,实现了功能更加强大的绘图操作的及格。由于Graphics2D类是Graphics类的扩展,也是推荐使用的Java绘图类,所以本章主要讲解如何Graphics2D类实现Java绘图

绘制图形

  1. 介绍:java分别使用Graphics类和Graphics2D类绘制图形,Graphics类使用不同的方法实现不同图形绘制。类如,drawLine()方法可以绘制直线,drawRect()方法用于绘制椭圆形等。
  2. 绘制奥运五环图案

    1. 在项目中创建DrawCirele类,使该类继承JFrame类成为窗体组件,在类中创建继承JPanel类的DrawPanel内部类,并重写paint()方法,绘制有5个圆形组成的图案。
    2. 代码(创建DrawCircle类)
      package JavaGraph;
      
      import javax.swing.*;
      import java.awt.*;
      import java.util.jar.JarFile;
      
      public class DrawCircle extends JFrame {
          private final int OVAL_WIDTH =80;                                    //圆形的宽
          private final int OVAL_HELGHT =80;                                   //圆形的高
      
          public DrawCircle(){
              //调用初始化方法
              initialize();
      
          }
      
          //初始化方法
          private void initialize() {
              setSize(300,200);                                     //设置窗体大小
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                    //设置窗体关闭模式
              setContentPane(new DrawPanel());                                  //设置窗体面板为绘图面板对象
              setTitle("绘图实例1");                                               //设置窗体标题
          }
      
          //创建绘制面板
          class DrawPanel extends JPanel{
              //重写绘制方法
              public void paint(Graphics g){
                  g.drawOval(10,10,OVAL_WIDTH,OVAL_HELGHT);                 //绘制第1个图形
                  g.drawOval(80,10,OVAL_WIDTH,OVAL_HELGHT);                 //绘制第1个图形
                  g.drawOval(150,10,OVAL_WIDTH,OVAL_HELGHT);                //绘制第1个图形
                  g.drawOval(50,70,OVAL_WIDTH,OVAL_HELGHT);                 //绘制第1个图形
                  g.drawOval(120,70,OVAL_WIDTH,OVAL_HELGHT);                //绘制第1个图形
              }
          }
      
          public static void main(String[] args) {
              new DrawCircle().setVisible(true);
          }
      }
      
    3. 正确运行结果
  3. 所有Graphics类常用的图形绘制

    1. 代码(创建)
       

      package JavaGraph;
      
      import javax.swing.*;
      import java.awt.*;
      
      public class AllGraph extends JFrame {
          private final int OVAL_WIDTH =80;                                    //圆形的宽
          private final int OVAL_HELGHT =80;                                   //圆形的高
      
          public AllGraph(){
              //调用初始化方法
              initialize();
      
          }
      
          //初始化方法
          private void initialize() {
              setSize(520,400);                                     //设置窗体大小
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                    //设置窗体关闭模式
              setContentPane(new DrawPanel());                                  //设置窗体面板为绘图面板对象
              setTitle("绘图实例2");                                               //设置窗体标题
          }
      
          //创建绘制面板
          class DrawPanel extends JPanel{
              //重写绘制方法
              public void paint(Graphics g){
                  //圆形
                  g.drawOval(10,10,OVAL_WIDTH,OVAL_HELGHT);
                  //弧形
                  g.drawArc(100,10,OVAL_HELGHT,OVAL_HELGHT,270,200);
                  //直线
                  g.drawLine(200,30,280,30);
                  g.drawLine(200,60,280,60);
                  //多边形
                  int[] xs={300,300,380,380};
                  int[] ys={10,80,10,80};
                  g.drawPolygon(xs,ys,4);
                  //多变线
                  int[] xs1={400,400,480,480};
                  int[] ys1={10,80,10,80};
                  g.drawPolyline(xs1,ys1,4);
                  //矩形
                  g.drawRect(10,100,OVAL_WIDTH,OVAL_HELGHT);
                  //圆角矩形
                  g.drawRoundRect(100,100,OVAL_WIDTH,OVAL_HELGHT,50,50);
                  //实心椭圆
                  g.fillOval(200,100,OVAL_WIDTH,OVAL_HELGHT);
                  //实心弧形
                  g.fillArc(300,100,OVAL_WIDTH,OVAL_HELGHT,270,200);
                  int[] xs2={400,400,480,480};
                  int[] ys2={110,180,110,180};
                  g.fillPolygon(xs2,ys2,4);
                  //实心矩形
                  g.fillRect(10,200,OVAL_WIDTH,OVAL_HELGHT);
                  //实心圆角矩形
                  g.fillRoundRect(100,200,OVAL_WIDTH,OVAL_WIDTH,50,50);
      
      
              }
          }
      
          public static void main(String[] args) {
              new AllGraph().setVisible(true);
          }
      }
      
    2. 允许正确结果

颜色与画笔

  1. 介绍:使用Color类可以创建任意的对象,不用担心平台是否支持该颜色,因为Java以跨平台和与硬件无关的方式支持颜色管理。
  2. 创建方式:Color col = new(int r, int g, int b)
                      Color col = new(int rgb)
  3. rgb(三原色)是红绿蓝的总和
    r:红色
    g:绿色
    b:蓝色

拓展

Java绘图不止这么点,博主只是简单的整理了一下。

;