第19章总结

一.Java绘图类
        1.Graphics类
Graphics类是所有图形上下文的抽象基类,它允许应用程序在组件以及闭屏图像上进行绘制。Graphics类封装了Java支持的基本绘图操作所需的状态信息,主要包括颜色、字体、画笔、文本、图像等。

        2.Graphics2D类
Graphics2D类继承Graphics类,实现了功能更加强大的绘图操作的集合。

二.绘制图形
【例19.1】绘制奥运五环图案

要绘制指定形状的图形,需要先创建并初始化改图形类的对象,且这些图形类必须是Shape接口的实现类;然后使用Graphics2D类的draw()方法绘制改图形对象,或者使用fill()方法填充改图形对象。语法:

draw(Shape form)
或:
fill(Shape form)

draw(Shape form)
或:
fill(Shape form)
其中,form是指实现Shape接口的对象。 

【例19.2】绘制空心和实心的集合图形
代码:


三.绘制颜色与画笔属性
        1.设置颜色
创建Color对象的构造方法有如下两种:

Color col=new Color(int r,int g,int b)
Color col=new Color(int rgb)

 2.设置画笔
默认情况下,Graphics类使用的画笔属性是粗细为1个像素的正方形,而Graphics2D类可以调用setStroke()方法设置画笔的属性。语法:

setStroke(Stroke stroke)
参数stroke是Stroke接口的实现类对象。

四.绘制文本
        1.设置字体
Java使用Font类封装了字体的大小、样式等属性,该类在Java.awt包中定义,其构造方法可以指定字体的名称、大小和样式3个属性。语法:

Font(String name,int style,int size)

设置绘图类的字体可以使用绘图类的setFont()方法。设置字体以后在图形上下文中绘制所有文字都使用该字体,除非再次设置其他字体。语法:

setFont(Font font)
参数font是Font类的字体对象。

        2.显示文字
Graphics2D类提供了drawString()方法,使用该方法可以实现图形上下文的文本绘制,从而实现在图片上显示文字的功能。语法:

drawString(String str,int x,int y)
drawString(String str,float x,float y)

【例19.3】绘制文字钟表

五.显示图片
绘图类不仅可以绘制图形和文本,还可以使用drawImage()方法将图片资源显示到绘图上下文中,而且可以实现各种特效处理,如图片的缩放、翻转等。语法:

drawImage(Image img,int x,int y,ImageObserver observer)
【例19.4】在窗体中显示图片

六.图像处理
        1.放大与缩小 
显示图片使用了drawImage()方法将图片以原始大小显示在窗体中要想实现图片的放大与缩小,则需要使用它的重载方法。语法:

drawImage(Image img,int x,int y,int width,int height,ImageObserver observer)

  2.图片翻转 
图像的翻转需要使用drawImage()方法的另一个重载方法。语法:

drawImage(Image img,int dx1,int dy1,int dx2,int dy2,int sx1,int sx2,int sy2,ImageObserver observer)

    3.图像旋转 
图像旋转需要调用Graphics2D类的rotate()方法,该方法将根据指定的弧度旋转图像。语法:

rotate(double theta)
theta是指旋转的弧度。

    4.图像倾斜
可以使用Graphics2D类提供的shear()方法设置绘图的倾斜方向,从而使图像实现倾斜的效果。语法:

shear(double shx,double shy)
【例19.8】让照片变成向左倾斜的平行四边形形状

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何写一个数据库中间件以及需要准备的知识储备

什么是数据库中间件 1.透明化使用方无感知,或者尽量少感知。通过现有的接入端接入已有服务 2.增量服务不改变数据库本身功能的前提下,提供额外的功能与服务一个原则不破坏原有逻辑,并且让用户基于之前的经验可以快速上手接入端协议的选择 1.…

HTTP断点续传

一、概述所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用到Range和Content-Range实体头。HTTP协议本身不支持断点上传,需…

RSA公钥文件(PEM)解析

公钥语法为: RSAPublicKey :: SEQUENCE { modulus INTEGER, //RSA合数模n publicExponent INTEGER //RSA公开幂e } 说明: 1.此语法中的modulus和publicExponent,提取自对应私钥中的同名域值。 2.PKCS1和PKCS8的公钥文件是一样的&#xff…

[spring boot] ------ 总结1

spring boot 设计目的:简化spring应用的初始搭建以及开发过程 spring环境的微服务:对原有技术的封装(spring springMVC) 简化开发,提高开发效率(原ssm--->spring boot mybatis) 自动配置&…

RSA私钥文件(PEM-PKCS#1)解析

在PKCS#1 RSA算法标准中定义RSA私钥语法 RSAPrivateKey :: SEQUENCE { version Version, //版本 modulus INTEGER, // RSA合数模 n publicExponent INTEGER, //RSA公开幂 e privateExponent INTEGER, //RSA私有幂 d prime1 INTEGER, //n的素数因子p prime2 INTEGER, //n的…

Spring的@Configuration使用cglib代理的效果和我自己写的简单实现

下面的代码,照着复制就能跑起来 今天看了下Spring的Configuration,即java类配置bean,(这个spring3的新功能,虽然现在已经spring5了,但是这种配置bean的方式也是比较火的) 做了如下测试,发现一个…

Xcode中StaticLibrary和Framework的共同点和区别

一、共同点:两者其实都是静态库。二、区别1.承载的内容范畴:(1)StaticLibrary的产出物只是一个.a文件,为二进制执行文件。分享给别人的时候,头文件、静态资源文件需要另外提供。(2)Framework为一站式分享方案,其实是一…

[分布式] ------ 全局唯一id生成之雪花算法(Twitter_Snowflake)

雪花算法(Twitter_Snowflake) 我们知道,分布式全局唯一id的生成,一般是以下几种: 基于雪花算法生成基于数据库基于redis基于zookeeper 本文说下雪花算法,后面附源码以及测试代码。 如下图: …

非对称加解密交互故事

1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2.鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。 3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果 4.鲍勃收信后,用私钥解密&#xff0…

2019年规划

2019年规划,到2019-12-31检查: 1.至少读5本与工作无关的书(平均两个月1本),每本都产出读后感 1.1 《重构 改善代码既有设计》,2月19日~3月5日,刚好两周读完,产出两篇总结&#xff0…

RSA私钥文件(PEM-PKCS#8)解析

***此文仅针对没有执行加密的PKCS#8私钥文件***一、实例解析PKCS#8格式使用的是ASN.1结构,首先我们对一个没有执行加密的PKCS#8格式私钥文件进行一下解析,方便我们下面分析其结构。命令:openssl asn1parse -i -in privatekey.pem结果如下&…

分布式和集群的区别

分布式和集群的区别 分布式是多个不同功能的机器共同完成一件事情 集群是多个相同功能的机器完成的是相同的事情 分布式是为了分担压力 集群是为了稳定性和高可用 举个例子: 一个厨师开了一个饭店,他要负责做饭和卖饭,他的压力就比较大&am…

Sqlite3中replace语句用法详解

在本例中使用如下数据库表: (图 1) 该表的表名为student, 存储学生信息。 所有字段的数据类型都是TEXT 。 其中id和name作为复合主键。 email字段加上了唯一约束。建表语句如下: CREATE TABLE IF NOT EXISTS student …

[分布式一致性协议] ------ raft协议的解释与理解

前言 在分布式系统中,为了保证容错性,一般会维护多个副本集群,提高系统的高可用,但与之带来的问题就是多个副本的一致性(consensus)问题。 我们认为,对于一个具有一致性的的集群中,…

iOS应用图片命名规则

一、界面图片命名规则:MyImage.png 一般图片命名MyImage2x.png 高清图片命名MyImage~iphone.png iPhone 和 iPod touch版一般图片命名MyImage2x~iphone.png iPhone 和 iPod touch版高清图片命名MyImage~ipad.png …

用户自定义排序的几种实现思路

场景 每个用户,有多个分组 每个分组在页面展示,而且是有顺序的,这个顺序是由用户决定 以下是关于多种情况下的库表设计思路: 情景一:如果每改一次,就要实时修改库,而且用户可以任意修改顺序&…

重构,体现一个工程师的基本素养和底蕴

重构小记(重构,改善既有代码的设计读后总结) 我们要时时刻刻保持一颗项目要重构的心。 在非技术出身的领导看来,能用的代码就是好代码,只关注功能。 在工程师看来,代码不仅要好用,更要好看&…

应用内购买(IAP)各类型在服务端的验证规则

一、非消耗品(比如单本杂志购买,苹果服务器支持恢复) 1.先验证服务器有没有购买记录,如果有,则不处理,此次操作成功 ;2.如果服务器没有购买记录,则到苹果服务器验证(1)首先到正式验证地址验证收据,如果返回…

@Transactional事务生效条件与样例

Transactional事务生效条件 Transactional注释的方法,不能是private修饰 Transactional注释的方法,必须是有接口的方法实现(通用的Spring面向接口编程的套路) Transactional注释的方法,必须要通过接口的方式调用&…

利用.dSYM和.app文件准确定位Crash位置

当发布到iPhone上的应用程序Crash之后,iPhone会自动生成一个Crash Log(*.crash),这个文件包含了一些有用的调试信息,但对于堆栈,它只记录的函数地址,而无法显示函数名。函数名保存在一个叫dSYM的…