(Java2D 学习笔记系列) (一)一个简单的图像填充实例及其分析理解
2010-10-28 22:23
1086 查看
一. Java 2D API
它包含在以下几个包中
二、Graphics 与 Graphics2D
1. 两者关系
前者是一个抽象类
后者是一个普通类,它是Graphics的扩展,提供Java的二维图形绘制
两者的可用 如下转化
2. 绘制图形
Java 2D API 中图像轮廓绘制和填充是两个独立的操作
绘制:用一个实现了Stroke接口的对象定义的画笔,来draw画形状轮廓
填充:用一个实现了Paint接口的对象定义的画笔,来Filll填充图形
绘制字符串时:drawString 直接实现填充
如:
三、void paint(Graphics g)函数
当一个conponent需要重绘时,就会调用paint函数
我们就可以在这个函数里实现一些绘制代码
四、代码
它包含在以下几个包中
java.awt java.awt.geom java.awt.font java.awt.color java.awt.image java.awt.image.renderable java.awt.print
二、Graphics 与 Graphics2D
1. 两者关系
前者是一个抽象类
后者是一个普通类,它是Graphics的扩展,提供Java的二维图形绘制
两者的可用 如下转化
void paint(Graphics g){ Graphics2D g2d = (Graphics2D)g; //下面使用 g2d 绘制图形 }
2. 绘制图形
Java 2D API 中图像轮廓绘制和填充是两个独立的操作
绘制:用一个实现了Stroke接口的对象定义的画笔,来draw画形状轮廓
填充:用一个实现了Paint接口的对象定义的画笔,来Filll填充图形
绘制字符串时:drawString 直接实现填充
如:
//---------------draw-------------------- drawLine(); drawOval(); drawPolygon(); drawPolyLine(); drawRect(); //---------------fill-------------------- fillOval(); fillRect(); fillPolygon(); fillPolyLine();
三、void paint(Graphics g)函数
当一个conponent需要重绘时,就会调用paint函数
我们就可以在这个函数里实现一些绘制代码
四、代码
import java.awt.BorderLayout; import java.awt.Color; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.*; public class Test_JFrame extends JFrame{ private myPanel p; public Test_JFrame(String name){ super(); //继承父类的构造方法 setTitle(name); //名字 setBounds(0,0,300,300); //大小 BorderLayout bl = new BorderLayout(); bl.setHgap(20); bl.setVgap(20); getContentPane().setLayout(bl);//布局管理 p = new myPanel("jarvischu"); p.setBounds(0, 0, 150, 150); getContentPane().add(p,bl.CENTER); this.setDefaultCloseOperation(EXIT_ON_CLOSE);//设置默认关闭操作 } public static void main(String args[]){ Test_JFrame frame = new Test_JFrame("JarvisChu"); frame.setVisible(true); } } class myPanel extends JPanel{ private String m_Name; public myPanel(String name){ m_Name = name; } public void paint(Graphics g){ Graphics2D g2d = (Graphics2D)g; GradientPaint grdp = new GradientPaint(0,0,Color.blue,100,50,Color.RED); //创建一个渐变填充的对象 g2d.setPaint(grdp); //选中该Paint对象 g2d.fillRect(0, 0, 150, 150); } }
相关文章推荐
- (Java2D 学习笔记系列) (一)一个简单的图像填充实例及其分析理解
- [学习笔记]Java代码构建一个线程池的自己学习写的实例,用这个你会更好的理解文章内容
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- Java开发学习笔记之二:一个简单的Servlet
- java学习笔记之使用MyEclipse写一个简单的登陆界面(二)
- Java学习笔记 11/15:一个简单的JAVA例子
- JAVA学习笔记(11)-- Java类的定义及其实例化
- 致java初学者:理解每一句java代码,给出一个简单实例。
- Java学习笔记(一)用Eclipse把一个简单游戏项目生成可执行的JAR文件
- Java学习笔记·Servlet互相传递参数简单实例
- 【Java学习笔记之二十二】解析接口在Java继承中的用法及实例分析
- Hibernate 学习笔记-1-1(一个简单的Hibernate实例)
- [3]Selenium学习系列---- 一个简单的Selenium Java 工程
- java学习笔记之使用MyEclipse编写一个简单的登陆界(一)
- 【JAVA】【NIO】对系列翻译的总结,一个综合实例的分析,网络服务端接收客户端输入,实时将内容写文件
- 机器视觉学习笔记(9)——一个双目测距的简单实例
- core java 8 学习笔记(一) 一个简单的图片查看器的实现
- Hibernate 学习笔记-1-1(一个简单的Hibernate实例)
- java 从零开始,学习笔记之基础入门<线程及实例分析>(十九)
- 【opencv学习笔记五】一个简单程序:图像读取与显示