(Java2D 学习笔记系列) (一)一个简单的图像填充实例及其分析理解
2010-10-28 22:23
1231 查看
一. 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菜鸟学习笔记--面向对象篇(十二):Package简单理解
- 【Java学习笔记之二十二】解析接口在Java继承中的用法及实例分析
- Java开发学习笔记之二:一个简单的Servlet
- Java学习笔记·Servlet互相传递参数简单实例
- react native 学习笔记-----理解redux的一个极其简单例子
- java学习笔记之使用MyEclipse写一个简单的登陆界面(二)
- 【JAVA】【NIO】对系列翻译的总结,一个综合实例的分析,网络服务端接收客户端输入,实时将内容写文件
- 机器视觉学习笔记(9)——一个双目测距的简单实例
- Java学习笔记(一)用Eclipse把一个简单游戏项目生成可执行的JAR文件
- 【opencv学习笔记五】一个简单程序:图像读取与显示
- Hibernate 学习笔记-1-1(一个简单的Hibernate实例)
- [JAVA学习笔记-87]CompletionService简单分析
- 【Java学习笔记之二十二】解析接口在Java继承中的用法及实例分析
- Hibernate 学习笔记-1-1(一个简单的Hibernate实例)
- 【CI学习笔记】一个用PHP写的,简单的MVC实例
- Django学习笔记2:一个简单的开发实例
- java学习笔记之使用MyEclipse编写一个简单的登陆界(一)
- UNIX环境编程学习笔记-----编程实例------一个简单的服务器端和客户端程序