Java绘图类
- Graphics类
- Graphics类时所有图形上下问的抽象基类,它允许程序在组件以及闭屏图像上进行绘制,Graphics类封装了Java支持的基本绘图操作所需的状态信息,主要包括颜色,字体,画图,文本,图像等。
- Graphics类提供了绘图常用的方法,利用这些方法可以实现直线,矩形,多边形,椭圆,圆弧等形状和文本,图片的绘制操作。另外,在执行这些操作之前,还可以使用相应的方法设置绘图的颜色和字体等状态属性。
- Graphics2D类
- 使用Graphics类可以完成简单的图形绘制任务,但是它所实现的功能非常有限,如果改变线条粗细,不能对图片使用旋转和模糊效果
- Graphics2D类继承Graphics类,实现了功能更加强大的绘图操作的及格。由于Graphics2D类是Graphics类的扩展,也是推荐使用的Java绘图类,所以本章主要讲解如何Graphics2D类实现Java绘图
绘制图形
- 介绍:java分别使用Graphics类和Graphics2D类绘制图形,Graphics类使用不同的方法实现不同图形绘制。类如,drawLine()方法可以绘制直线,drawRect()方法用于绘制椭圆形等。
- 绘制奥运五环图案
- 在项目中创建DrawCirele类,使该类继承JFrame类成为窗体组件,在类中创建继承JPanel类的DrawPanel内部类,并重写paint()方法,绘制有5个圆形组成的图案。
- 代码(创建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); } }
- 正确运行结果
-
所有Graphics类常用的图形绘制
-
代码(创建)
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); } }
-
允许正确结果
-
颜色与画笔
- 介绍:使用Color类可以创建任意的对象,不用担心平台是否支持该颜色,因为Java以跨平台和与硬件无关的方式支持颜色管理。
- 创建方式:Color col = new(int r, int g, int b)
Color col = new(int rgb) - rgb(三原色)是红绿蓝的总和
r:红色
g:绿色
b:蓝色
拓展
Java绘图不止这么点,博主只是简单的整理了一下。