第十九章总结:Java绘图

19.1:Java绘图类

19.2:绘制图形

package nineteentn;
import java.awt.*;
import javax.swing.*;public class DrawCircle extends JFrame {private final int OVAL_WIDTH = 80; // 圆形的宽private final int OVAL_HEIGHT = 80; // 圆形的高public DrawCircle() {initialize(); // 调用初始化方法}private void initialize() {// 初始化方法setSize(300, 200); // 设置窗体大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体关闭模式setContentPane(new DrawPanel()); // 设置窗体面板为绘图面板对象setTitle("绘图实例1"); // 设置窗体标题}class DrawPanel extends JPanel {// 创建绘图面板public void paint(Graphics g) {// 重写绘制方法g.drawOval(10, 10, OVAL_WIDTH, OVAL_HEIGHT); // 绘制第1个圆形g.drawOval(80, 10, OVAL_WIDTH, OVAL_HEIGHT); // 绘制第2个圆形g.drawOval(150, 10, OVAL_WIDTH, OVAL_HEIGHT); // 绘制第3个圆形g.drawOval(50, 70, OVAL_WIDTH, OVAL_HEIGHT); // 绘制第4个圆形g.drawOval(120, 70, OVAL_WIDTH, OVAL_HEIGHT); // 绘制第5个圆形}}public static void main(String[] args) {new DrawCircle().setVisible(true);}
}//例题19.1


import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;public class DrawFrame extends JFrame {public DrawFrame() {setTitle("绘图实例2"); // 设置窗体标题setSize(300, 200); // 设置窗体大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体关闭模式add(new CanvasPanel()); // 设置窗体面板为绘图面板对象}class CanvasPanel extends JPanel {// 绘图变慢public void paint(Graphics g) {Graphics2D g2 = (Graphics2D) g;Shape[] shapes = new Shape[4]; // 声明图形数组shapes[0] = new Ellipse2D.Double(5, 5, 100, 100); // 创建圆形对象shapes[1] = new Rectangle2D.Double(110, 5, 100, 100); // 创建矩形对象shapes[2] = new Rectangle2D.Double(15, 15, 80, 80); // 创建矩形对象shapes[3] = new Ellipse2D.Double(120, 15, 80, 80); // 创建圆形对象for (Shape shape : shapes) { // 遍历图形数组Rectangle2D bounds = shape.getBounds2D();if (bounds.getWidth() == 80)g2.fill(shape); // 填充图形elseg2.draw(shape); // 绘制图形}}}public static void main(String[] args) {new DrawFrame().setVisible(true);}
}//例题19.2

19.3:绘图颜色与画笔属性

19.3.1:绘制颜色

	if (bounds.getWidth() == 80){//小的是实心的,大的是空心的Color c = new Color(255,0,0);//设置颜色g2.setColor(c);g2.fill(shape);//填充变颜色g2.fill(shape); // 填充图形}else {Color c = new Color(0,0,255);//让线条变颜色g2.setColor(c);g2.draw(shape); // 绘制图形}

19.3.2:绘制画笔

19.4:绘制文本

19.4.1:设置字体

19.4.2:显示文字

19.5:显示图片

19.6:图像处理

19.6.1:放大和缩小

19.6.2:图像翻转

19.6.3:图像旋转

19.6.4:

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

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

相关文章

Mathtype公式自动转Word自带公式

Mathtype公式自动转Word自带公式 前言/word技巧探索过程参考资料(有效与无效)全自动方案/代码/教程 前言/word技巧 word公式 用ALT号可以输入简单latex显示公式;复杂度,需要引入latex包的不行;显示不出来的话按一下en…

kubernetes--pod详解

目录 一、pod简介: 1. Pod基础概念: 2. Kubrenetes集群中Pod的两种使用方式: 3. pod资源中包含的容器: 4. pause容器的两个核心功能: 5. Kubernetes中使用pause容器概念的用意: 二、pod的分类&#xff1…

微软允许OEM对Win10不提供关闭Secure Boot

用户可能将无法在Windows 10电脑上安装其它操作系统了,微软不再要求OEM在UEFI 中提供的“关闭 Secure Boot”的选项。 微软最早是在Designed for Windows 8认证时要求OEM的产品必须支持UEFI Secure Boot。Secure Boot 被设计用来防止恶意程序悄悄潜入到引导进程。问…

11月14日星期二今日早报简报微语报早读

11月14日星期二,农历十月初二,早报微语早读。 1、江西南城县:限时发放购房补贴政策,三孩家庭每平方米最高补贴500元; 2、2023年中国内地电影市场累计票房突破500亿元; 3、市场监管总局:在全国…

【设计模式】策略模式

引例 方案一 说明: 不满足OCP,添加新的排序算法或修改某个已有排序算法需要重新编译整个类可复用性差,Sorting类不可被直接复用 方案二 将客户类和算法类分开 说明:Sorting类可复用,但Sorting类仍不满足OCP 方案三…

低代码平台是什么?具备哪些特性?

目录 一、低代码开发概念 二、低代码开发和零代码开发的区别 三、低代码和零代码的开发优势 四、低代码开发平台介绍 JNPF开发平台 1)产品功能点 2)产品功能模块 五、小结 低代码开发平台近两年发展迅猛,并迅速渗透到各个细分领域。本文简要介…

用placement label代替keep margin解决绕线问题

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 通常我们用keepout margin去降低多pin cell类型的密度,这里提供一种替代方案,即使用placement label。好处是只限制多pin cell彼此间距,不会…

node插件MongoDB(四)—— 库mongoose 的个性话读取(字段筛选、数据排序、数据截取)(四)

文章目录 一、字段筛选二、数据排序三、数据截取1. skip 跳过2. limit 限定![在这里插入图片描述](https://img-blog.csdnimg.cn/c7067b1984ee4c6686f8bbe07cae9176.png) 一、字段筛选 字段筛选:只读取指定的数据,比如集合(表)中有…

基于IGT-DSER智能网关实现GE的PAC/PLC与罗克韦尔(AB)的PLC之间通讯

工业自动化领域的IGT-DSER智能网关模块支持GE、西门子、三菱、欧姆龙、AB等各种品牌的PLC之间通讯(相关资料下载),同时也支持PLC与Modbus协议的工业机器人、智能仪表等设备通讯。网关有多个网口、串口,也可选择WIFI无线通讯。无需编程开发,只…

教对象写代码

之前对象工作中需要获取地图上的一些数据, 手工找寻复制 费时费力, 逢此契机, 准备使用代码尽可能简化机械重复操作, 力图一劳永逸. 首选简洁易入门的Python. 下文就是对流程的总结, 及简述每步的意义. 并不Hack,重在感受编程的用途和基本工具的使用. 以百度地图为例,需求如下:…

ARPG----C++学习记录05 Section12 动画蒙太奇,收拿剑,MetaSound,调整动画

代码更新 https://github.com/BAOfanTing/ARPG_Game_Code/commit/c629270e49496ba1bcbaf03780d23c1842ca5e7a Animation Montages动画蒙太奇 蒙太奇的工作流程 新建一个鼠标左键的按键映射,下载一些攻击动画,重定向给我们的人物,新建一个动画…

观察者模式-C++

观察者模式(Observer)是一种行为型设计模式,它用于在对象之间建立一对多的依赖关系,当一个对象发生改变时,所有依赖它的对象都会收到通知进行相应的改变。 观察者模式中有两种核心角色: 观察者&#xff0…

eNSP-打开华为USG6000V1防火墙web管理页面方法

一、本地打开防火墙web管理页面 1.先在ensp中启动USG6000V1防火墙,启动后,需要输入原始username和password(username:admin,password:Admin123),并修改原始密码后,才能配…

TiDB单机集群模拟生产环境

1、先部署环境,安装5.4.3版本,详细的安装步骤见官方文档:单机集群模拟生产环境安装教程 配置文件topo.yaml global:user: "tidb"ssh_port: 22deploy_dir: "/tidb-deploy"data_dir: "/tidb-data"monitored:no…

XML Web 服务 Eclipse实现中的sun-jaxws.xml文件

说明 在sun-jaxws.xml文件,可以配置endpoint、handler-chain等内容。在这个文件中配置的内容会覆盖在Java代码中使用注解属性配置的的内容。 这个文件根据自己的项目内容修改完成以后,作为web应用的一部分部署到web容器中(放到web应用的WEB…

Python使用SQLAlchemy操作sqlite

Python使用SQLAlchemy操作sqlite sqllite1. SQLite的简介2. 在 Windows 上安装 SQLite3. 使用SQLite创建数据库3.1 命令行创建数据库3.2 navicat连接数据库 4.sqlite的数据类型存储类SQLite Affinity 类型Boolean 数据类型Date 与 Time 数据类型 5. 常用的sql语法**创建表(CREA…

七个开源免费的低代码/无代码后端项目

无代码/低代码系统是一种用于支持开发人员在不编写代码的情况下构建应用程序或者管理数据库的平台或工具。这类系统提供了可视化界面和预构建组件,使开发人员能够设计和创建API、管理数据和配置应用程序逻辑,无需进行传统模式的编程。 基于无代码后端的…

Ubuntu(WSL2) mysql8.0.31 源码安装

要在 Ubuntu 上使用调试功能安装 MySQL 8.0 的源码,可以按照以下详细步骤进行操作: 1. 更新系统 首先,确保你的 Ubuntu 系统是最新的。运行以下命令更新系统软件包: sudo apt update sudo apt upgrade 2. 下载 MySQL 源码 访…

自律性差怎么办,如何提高自律能力?

自律的力量是强大的,当然一个人不自律也没啥大不了的事,毕竟不自律的人才是大多数,但是当你想要有所成就的时候,那你就必须要学会自律,提高自律。 如果一个人缺乏自律性,那么学生时代肯定成绩不稳定&#…