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

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

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. 如何在 Docker 容器中运行 Kali Linux 2.0

    https://linux.cn/article-6103-1.html Kali Linux 是一个对于安全测试人员和白帽的一个知名操作系统.它带有大量安全相关的程序,这让它很容易用于渗透测试.最近 ...

  2. 关于在IJ中使用maven projects 的Lifecycle中打包package报expected START_TAG or END_TAG not TEXT

    报错指定到maven本地仓库下的settings.xml某一行,如下列JDK配置: <profiles> <profile>    <id>jdk-1.8</ ...

  3. Java Code Style

    近期困惑于团队成员代码风格迥异,代码质量不可控,作为一名老司机,忧患于后期服务的可维护性,多次一对一的代码Review,耗时耗力不说,效果也不明显.痛定思痛,多次反思之后得出结论:无规矩不成方圆,可靠 ...

  4. MVC-AOP(面向切面编程)思想-Filter之IExceptionFilter-异常处理

    HandleErrorAttribute MVC中的基本异常分类: Action异常      T view异常 T, service异常     T, 控制器异常      F(异常get不到), ...

  5. Java 面试知识点解析(二)——高并发编程篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  6. 8.Vue基础

    环境搭建 node.js安装 https://nodejs.org/en/ cnpm npm install -g cnpm --registry=https://registry.npm.taoba ...

  7. 源码分析Session的台前幕后(Asp .Net MVC5)

    在这篇文章里,我们从源代码的角度重点分析Session的创建.缓存.销毁.管理. 通常我们说的Session指的是在控制器中使用的Session字段,该字段的类型是HttpSessionState.可 ...

  8. java虚拟机的内存分配

    java程序在执行时,jvm的内存执行方案.

  9. SSM-SpringMVC-28:SpringMVC类型转换之自定义日期类型转换器

     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 例子很简易,要明白的是思路,话不多说,开讲 上篇博客不是说springmvc默认的日期转换格式是yyyy/M ...

  10. Xor Sum 01字典树 hdu4825

    Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others)Total S ...