码迷,mamicode.com
首页 > 其他好文 > 详细

本周新学的 GUI绘图技术

时间:2018-05-26 19:33:45      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:界面   phi   样式   复杂   通过   文字   设置   raw   too   

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

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

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绘图技术

标签:界面   phi   样式   复杂   通过   文字   设置   raw   too   

原文地址:https://www.cnblogs.com/tianyating/p/9093862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!