文档章节

看《java游戏编程与实践》日常代码练习

寻千
 寻千
发布于 2016/10/24 20:03
字数 361
阅读 78
收藏 0

    今天,学着书上的代码练习了一下对渐变颜色填充图形的绘制,书上画的本来是矩形的经过我的修改后改成了圆形,具体代码如下:

package text;

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.TexturePaint;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.security.spec.EllipticCurve;
import java.util.regex.Pattern;

import javax.swing.JFrame;

public class PaintDemo extends JFrame{
	public PaintDemo() {
		// TODO Auto-generated constructor stub
		super("颜色渐及纹理填充演示例");
		setSize(200,150);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
	}
	@Override
	public void paint(Graphics g) {
		// TODO Auto-generated method stub
		super.paint(g);
		Graphics2D g2d=(Graphics2D)g;
		//以颜色从白到蓝周期性渐变设置绘图方式
				g2d.setPaint(new GradientPaint(20f, 50f, Color.white, 80f,80f,Color.black,true));
				g2d.fill(new Ellipse2D.Double(20,50,70,70));
				//以上述方式绘制矩形
				BufferedImage texture=new BufferedImage(5, 5, 1);//创建BufferedImage对象
				Graphics2D pattern=texture.createGraphics();//创建一个Graphics2D对象
				pattern.setColor(Color.blue);//设置纹理图案的颜色
				pattern.fillRect(0, 0, 5, 5);//填充纹理图案
				pattern.setColor(Color.white);//设置纹理图案的颜色
				pattern.fillOval(0, 0, 5, 5);//以外接圆方式填充纹理图案
				Rectangle rect=new Rectangle(0, 0,5,5);//创建用于定位和复制纹理的Rectangle2D对象
				g2d.setPaint(new TexturePaint(texture,rect));//以指定的纹理设置绘图方式
				g2d.fill(new Ellipse2D.Double(100,50,70,70));//以纹理方式绘制圆形
	}
	
	public static void main(String[] args) {
		new PaintDemo();
	}

}

绘制之后的效果如图:

虽然,java的重点是网络编程,文件io流,以及数据库部分,但我对图形编程挺有兴趣的,练着玩一下吧!

© 著作权归作者所有

寻千
粉丝 0
博文 16
码字总数 4147
作品 0
肇庆
程序员
私信 提问
Java程序员必读书单,家族又添新成员

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 有些革命出其不意地吸引了全世界的眼球。Twitter、Linux操作系统和...

异步社区
2018/05/09
0
0
【广州】被客户叼晕了的【Java程序员】,来此【求职】哈~

先来些简历信息,让各位HR或主管经理过过目。。。 有木有单位愿意收留俺这枚应届生,屌丝程序猿。。。 专业能力:掌握Java语言编程,熟练JSP、Servlet、JDBC下开发; 熟悉Struts、Hibernate...

__啊
2014/07/23
2.7K
23
2014年值得学习的编程语言书

经过数据分析和研究 Jobs Tractor 的 45000 个开发人员招聘职位数据,我们得到了上图的结果: 自上一年,主要的变化如下: PHP和Java换了位置,但是仍旧是高居不下 Java的Android已经取代了S...

modernizr
2014/05/22
15.6K
16
【有奖书评】JAVA 7来袭,还看 Java 你就OUT了

从1995年至今,Java已经超过15个年头,经过这些年的演进,Java已不仅是个程序语言,也代表了解决问题的平台(Platform),更代表了原厂、各个厂商、社群、开发者与用户沟通的成果。若仅以程序语...

louise
2012/08/31
12.4K
123
作为程序员,你怎么看待用go语言重写所有的Java后台工程

作为程序员怎么看待这件事,go语言是成主流趋势了吗?会Java的程序员怎么办,不会失业吧!现在小编就带领大家看看这两门语言到底有何特点以及网友对此事的一个认知。 Go语言是谷歌2009年发布...

糖宝_d864
2018/08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

URL/URI/URN的认识

这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还...

WinkJie
19分钟前
1
0
vs2017 踩坑

好久没有使用vs2017,改了下代码,启动调试进行测试,一没有注意,就启动了。 然后 ,悲剧了,,,就有下面的问题。 VS断点提示:当前不会命中断点。还没有为该文档加载任何符号 然后百度了下,...

轻轻的走过
19分钟前
1
0
解决一个emqttd trace 无法打开的问题

emqttd这个东西做的真心不咋地,之前有emq_auth_mysql的plugin死活无法启动的问题,现在又碰到trace无法打开的问题。 查看emqttd服务器当前连接的所有client: emqttd_ctl clients list 要打...

莫在全
27分钟前
1
0
java wsdl 中不显示参数属性类型的问题解决方案

CXF3.0.1解决方案: 配合spring方式 <jaxws:endpoint id="receiveUMSMessageService" implementor="com.sw.extInterface.webservice.service.impl.ReceiveUMSMessageServiceImpl" address="......

嘿嘿嘿IT
30分钟前
1
0
go alpine docker image 搭建

Dockerfile 搭建 目录结构 --Dockerfile--main.go 写一个go的helloworld package mainimport ("fmt""log""net/http")func main() {http.HandleFunc("/", hello)err := ht......

solate
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部