作者语录:“终于学到绘图了 看到这种有图案的心情美丽多了  希望自己可以越学越多 越学越好”

本次就不用图片展示效果了,纯文字。

1.Graphics类概述

画图时我们都需要拥有一支画笔,Java中的Graphics类就类似绘制图像的画笔,该类当中提供了各种绘制图像的方法,包括绘制图片,绘制文本,绘制图形等。使用Graphics类的这些方法可以完成多种图像的绘制。

2.Graphics基本使用

使用Graphics类的基础功能我们可以完成多种图形的绘制,在容器中绘制图形需要重写容器的paint()方法,关于绘图的代码必须写在paint()方法中,paint()方法会在创建图形界面和改变图形界面时自动调用,手动调用paint()方法需要通过repaint()方法来完成。

注意:绘制图形需要重写容器的paint()方法,该方法会在容器创建或改变时自动调用。

3.Graphics2D

使用Graphics类可以完成基本的图形绘制,但是如果需要绘制一些比较复杂的图形时该类的功能就显得十分有限了。Graphics2D类继承了Graphics类,该类提供了对几何形状,坐标转换,颜色管理和文本布局等更为复杂的操作。Graphics2D类是实现二维形状,文本,和图像的基础类。

注意:Graphics2D对象可以通过强制转换Graphics对象获取。

Graphics2D与Graphics类似,除了可以绘制空心的图形之外还可以绘制实心的图形,绘制实心图形时只需要地道用方法名称为fillXXX()的方法即可。

4.画笔属性的设置

2.1 设置画笔的颜色

在程序绘图时需要用到各种各样的颜色,如果只有黑色肯定满足不了实际开发的需求。Java中提供了Color类用于创建多种颜色,如果要给画笔设置颜色需要调用Graphics类的setColor()方法。

语法:

g.setColor(Color类对象);

setColor()方法的参数为Color类的常量值,这些常量值都是静态的Color类对象,每个Color的常量值都代表一种颜色。

注意:使用setColor()方法将画笔颜色,此后画笔绘制图形时都会自动采用这种颜色。如果需要绘制其他颜色的图形,需要再次调用setColor()方法为画笔重新设置颜色。

2.2 设置画笔的字体

Graphics类除了可以绘制图形外还可以用来绘制文本,绘制特定格式文本时需要先设置画笔的字体样式。Java中提供了Font类用于创建文本样式,Font类提供了设置字体大小,样式等功能,使用Font类的有参构造方法即可创建一个包含指定字体,大小和样式的Font对象。

语法:

Font f = new Font(字体,样式,字号)

拥有Font对象后就可以通过Graphics类的setFont()方法为画笔设置指定的字体。

2.3 绘制图片

Graphics除了可以绘制图形与文本外还可以绘制图片,绘制图片需要使用drawImage()方法,该方法可以通过图片对象以及绘制的坐标来绘制图片。获取图片对象需要使用ToolKit类中的方法。

语法:

Image img = ToolKit.getDefaultToolkit().getImage(图片路径);

本章小结:

1.Graphics类是Java中用来绘制图形的基本类。

2.在容器中绘制图形时,须重写该容器的paint()方法,paint()方法会在容器创建与改变时自动调用。

3.Color类可以用来创建任意颜色对象,Graphics类的setColor()方法可以设置画笔的颜色。

4.Font类可以用来创建字体对象,Graphics类的setFont()方法可以设置画笔的字体。

5.ToolKit.getDefaultToolkit().getImage()方法可以获取图片对象,Graphics类的drawImage()方法可以绘制图片。

本周新学的 GUI绘图技术的更多相关文章

  1. 客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析

    原生开发应用开发 Microsoft阵营的 Winform WinForm是·Net开发平台中对Windows Form的一种称谓. 如果你想深入的美化UI,需要耗费很大的力气,对于目前主流的CSS样 ...

  2. 【PHP绘图技术&&验证码绘制】

    PHP绘图是比较简单的事情,基本绘图如直线.圆.矩形.弧线.填充矩形.填充扇形.非中文字的打印.中文文字的打印在在下面的代码中会纤细讲解. 需要支持中文的字体,可以到windows自带的字体库中找,并 ...

  3. Windows 窗体的.Net 框架绘图技术

    当编写一个典型的Windows 窗体程序时,窗体和控件的绘制.效果等操作是不需要特别加以考虑的.这是为什么呢?因为通过使用 .Net 框架,开发人员可以拖动一系列的控件到窗体上,并书写一些简单的与事件 ...

  4. PHP自学之路---报表及绘图技术

    Ø  报表 a)        什么是报表 报表就是用表格.图表等格式来动态显示数据. b)        PHP绘图坐标系 1.  坐标系介绍 下图说明了PHP坐标系.坐标原点位于左上角,以像素为单 ...

  5. PHP 绘图技术

    1.图片格式:目前网站开发常见的图片格式有gif,jpg/jpeg,png ..... 区别: gif 图片压缩率高,但是只能显示256色,可能造成颜色的丢失,可以显示动画 jpg/jpeg 图片压缩 ...

  6. 【二十七】php之绘图技术(gd、jpgraph、短信随机验证码)

    1.绘图技术(GD库) 注意:使用该库,php.ini文件中的extension=php_gd2.dll必须是开启状态,不然无法使用 图片格式:目前网站开发常见的图片格式有gif,jpg/jpeg,p ...

  7. 对于PHP绘图技术的理解

    要使用PHP绘图,就得在php.ini文件中设置一下 找到这个位置 ;extension=php_gd2.dll,然后把前面的分号去掉,重启下apache就可以了 几乎每行代码我都写了注释,方便看懂 ...

  8. 【MFC】MFC绘制动态曲线,用双缓冲绘图技术防闪烁

    摘自:http://zhy1987819.blog.163.com/blog/static/841427882011614103454335/ MFC绘制动态曲线,用双缓冲绘图技术防闪烁   2011 ...

  9. 【转 | 侵删】2D 绘图技术中的坐标系统与坐标变换

    本文介绍在 2D 绘图技术中的坐标系统和坐标变换的相关知识.同时介绍 Kity 在这方面提供的 API .希望这些知识对于需要进行图形应用开发的同学会有所帮助. 锤子的故事 很久以前,有一个画家,他很 ...

随机推荐

  1. Python人工智能之-三大数学难点 !

    1. 微积分: 定积分与不定积分.全微分.最小二乘法.二重积分.微分方程与差分方程等... 2. 线性代数: 行列式.矩阵.向量.线性方程组.矩阵的特性和特性向量.二次型等... 3. 概率论和统计学 ...

  2. 学会分析YUV数据

    做视频采集与处理,自然少不了要学会分析YUV数据.因为从采集的角度来说,一般的视频采集芯片输出的码流一般都是YUV数据流的形式,而从视频处理(例如H.264.MPEG视频编解码)的角度来说,也是在原始 ...

  3. java文件传输之文件编码和File类的使用

    ---恢复内容开始--- 我们知道,在用户端和服务端之间存在一个数据传输的问题,例如下载个电影.上传个照片.发一条讯息.在这里我们 就说一下文件的传输. 1.文件编码 相信大家小时候玩过积木(没玩过也 ...

  4. CSS样式渐变代码,兼容IE8

    background: -webkit-linear-gradient(top,#ffffff,#f5f5f5); background: -moz-linear-gradient(top,#ffff ...

  5. 完美解决IE渲染方式进入兼容模式问题

    <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE"> &l ...

  6. builder设计模式(摘录ITeye文章lintomny)

    对于Builder模式很简单,但是一直想不明白为什么要这么设计,为什么要向builder要Product而不是向知道建造过程的Director要.刚才google到一篇文章,总算清楚了.在这里转贴一下 ...

  7. 二叉树,AVL树和红黑树

    为了接下来能更好的学习TreeMap和TreeSet,讲解一下二叉树,AVL树和红黑树. 1. 二叉查找树 2. AVL树 2.1. 树旋转 2.1.1. 左旋和右旋 2.1.2. 左左,右右,左右, ...

  8. invalid bound statement (not found)

    invalid bound statement (not found) mybatis 错误: 一般是Mapepr.xml文件中文nameapce没有和mapper接口发生映射,导致mybatis绑定 ...

  9. 我的Python之旅第二天

    一 .字符串操作 1单引号('').双引号("").三引号(""" """)的区别. 如果字符串中不包含单引号.双引号, ...

  10. python__基础 : 类的__init__,__str__,__del__方法

    __init__:当实例化一个类的时候,首相会执行__new__方法创建一个对象,接下来会执行__init__方法对对象的一些属性进行初始化. 所以如果对象有属性,一般会直接写在__init__方法里 ...