第19章总结

news2024/9/23 19:24:12

一.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.coloradmin.cn/o/1335356.html

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

相关文章

【MySQL】脏读、不可重复读、幻读介绍及代码解释

🍎个人博客:个人主页 🏆个人专栏: 数 据 库 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 结语 我的其他博客 前言 数据库事务隔离级别是关系数据库管理系统中一个重要的概念,它涉及到多个事务并发执行…

Shell三剑客:awk(awk编辑编程)二

一、IF 语句 IF 条件语句语法格式 #方式一: if (condition)action #方式二:使用花括号语法格式 if (condition) {action1;action2; ... } {if(表达式){语句1;语句2;...}} IF 语句实例 #判断数字是奇数还是偶数 [rootlocalhost ~…

Kafka生产环境问题总结与性能优化实践

Kafka可视化管理工具kafka-manager 安装及基本使用可参考: httos://wwwcnbloas.com/dadonaaa/o/8205302.html 线上环境规划 1. 消息丢失情况: 消

数据入表倒逼数据治理,国有企业如何做好数据资产管理

数据是驱动数字经济发展的核心生产要素,数据资产化是释放数据要素价值的重要方式。国有企业作为驱动数字化转型升级的排头兵,在数据资产入表的背景下,如何充分发挥海量规模数据和应用场景等优势,如何解决数据难点,管好…

ES8生产实践——Kibana对接Azure AD实现单点登录

基本概念介绍 什么是单点登录 单点登录(Single Sign-On,SSO)是一种身份验证和访问控制机制,允许用户使用一组凭据(通常是用户名和密码)仅需登录一次,即可访问多个应用程序或系统,而…

算法基础之最长公共子序列

最长公共子序列 核心思想: 线性dp 集合定义 : f[i][j]存 a[1 ~ i] 和 b[1 ~ j] 的最长公共子序列长度 状态计算: 分为取/不取a[i]/b[j] 共四种情况 其中 中间两种会包含两个都不取的情况(去掉) 但是因为取最大值 有重复也没事用f[i-1][j] 和 f[i][j-1]表…

GNN 图神经网络

GCN 邻接矩阵A:adjacency matrix用来表示节点间的连接关系。 度矩阵D:degree matrix用来表示节点的连接数 特征矩阵X:feature matrix用来表示节点的特征

openGauss学习笔记-172 openGauss 数据库运维-备份与恢复-导入数据-分析表172.1 分析表172.2 表自动分析

文章目录 openGauss学习笔记-172 openGauss 数据库运维-备份与恢复-导入数据-分析表172.1 分析表172.2 表自动分析 openGauss学习笔记-172 openGauss 数据库运维-备份与恢复-导入数据-分析表 执行计划生成器需要使用表的统计信息,以生成最有效的查询执行计划&#…

Sam Altman 晒网友新年愿望清单;AI Pin 明年 3 月开始交付丨 RTE 开发者日报 Vol.112

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

什么是非功能性测试?

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

AI爆文写作变现:如何让自己的文章减少AI味,提升写作质量

利用AI实现自媒体写作变现,核心就是爆文写作提示词(Prompt) 对新手来说,缺少好用的爆文提示词,这无疑是大家碰到的一个难点。 如何创建属于自己的高效AI指令,无疑是大家最关心的问题。 本篇文章将一步一…

计算机网络——网络层(四)

前言: 前面我们已经对物理层和数据链路层有了一个简单的认识与了解,现在我们需要对数据链路层再往上的一个层,网络层进行一个简单的学习与认识,网络层有着极其重要的作用,让我们对网络层进行一个简单的认识与学习吧 目…

市场复盘总结 20231225

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: SELECT CODE,成交额排名,净流入排名,代码,名称,DDE大单金额,涨幅,主力净额,DDE大单净量,CONVERT(DATETIME, 最后封…

nosql--RedisTemplate定制化

nosql--RedisTemplate定制化 1、序列化2、如果使用redis中保存数据会使用默认的序列化机制,导致redis中保存的对象不可视2.1将所有的对象以JSON的形式保存2.2配置reids自定义配置2.3转化成功2.4配置文件代码 3redis客户端 1、序列化 stringRedisTemplate RedisTemp…

Cesium.js三维地图的实现(依托天地图CDN文件)

零、技术选型: Vue2、VueCli5、天地图、Cesium.js 一、通过天地图官网案例实现 需要引入天地图官方提供的CDN链接访问Cesium.js相关文件 相关文件: https://api.tianditu.gov.cn/cdn/demo/sanwei/static/cesium/Cesium.js https://api.tianditu.gov.cn/…

解决Qt“报无法定位程序输入点xxx于动态连接库“问题

今天,在使用QtVS2019编译工程时,弹出"无法定位程序输入点xxx于动态链接库"问题,如图(1)所示: 图(1) 报"无法定位程序输入点xxx于动态链接库"问题 出现这种问题的原因有很多: (1) 工程Release/Deb…

实战教学:零食百货商城小程序开发全程指导

随着移动设备的普及和互联网技术的发展,小程序成为越来越多人的选择,特别是在购物方面。开发一个零食百货商城小程序,可以让你在手机上随时随地购买各种零食,方便快捷。本文将为你提供全程指导,让你轻松开发一个成功的…

2023读书笔记57|《顾城诗选》——我们走进了夜海, 去打捞遗失的繁星

2023读书笔记57|《顾城诗选》——我们走进了夜海, 去打捞遗失的繁星 细雨,洗去空气中的浮尘, 薄暗里蜜酒散开阵阵醇香。 野蜂在风雨的摇荡中开始安眠, 带着无限甜美的梦想。 河岸边,开满了耀眼的冰花。 沙洲上&#x…

算法导论复习(四)主方法的专题

主方法我们要记住的是什么呢?

详细学习Java注解Annotation、元注解(通俗易懂,一学就会)

概述 底层原理 自定义注解 示例代码: 1. 2.只有属性名为value的才可以,java对它进行了标识,如果是其他别名如value1是不行的 3.多个属性,必须用键值对形式,不能少写,也不能多写,除非有default修…