当前位置: 首页 > news >正文

java绘制图形和文本一_java绘制图形和文本

java.awt

类 Graphics

java.lang.Object

继承者 java.awt.Graphics

直接已知子类:

DebugGraphics, Graphics2D

public abstract class Graphics extends Object

Graphics 类是所有图形上下文的抽象基类,允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制。

Graphics 对象封装了 Java 支持的基本呈现操作所需的状态信息。此状态信息包括以下属性:

要在其上绘制的 Component 对象。

呈现和剪贴坐标的转换原点。

当前剪贴区。

当前颜色。

当前字体。

当前逻辑像素操作函数(XOR 或 Paint)。

当前 XOR 交替颜色(参见 setXORMode(java.awt.Color))。

坐标是无限细分的,并且位于输出设备的像素之间。绘制图形轮廓的操作是通过使用像素大小的画笔遍历像素间无限细分路径的操作,画笔从路径上的锚点向下和向右绘制。填充图形的操作是填充图形内部区域无限细分路径操作。呈现水平文本的操作是呈现字符字形完全位于基线坐标之上的上升部分。

图形画笔从要遍历的路径向下和向右绘制。其含义如下:

如果绘制一个覆盖给定矩形的图形,那么该图形与填充被相同矩形所限定的图形相比,在右侧和底边多占用一行像素。

如果沿着与一行文本基线相同的 y 坐标绘制一条水平线,那么除了文字的所有下降部分外,该线完全画在文本的下面。

所有作为此 Graphics 对象方法的参数而出现的坐标,都是相对于调用该方法前的此 Graphics 对象转换原点的。

所有呈现操作仅修改当前剪贴区所限定区域内的像素,此剪贴区是由用户空间中的 Shape 指定的,并通过使用 Graphics 对象的程序来控制。此用户剪贴区 被转换到设备空间中,并与设备剪贴区 组合,后者是通过窗口可见性和设备范围定义的。用户剪贴区和设备剪贴区的组合定义复合剪贴区,复合剪贴区确定最终的剪贴区域。用户剪贴区不能由呈现系统修改,以反映得到的复合剪贴区。用户剪贴区只能通过 setClip 或 clipRect 方法更改。所有的绘制或写入都以当前的颜色、当前绘图模式和当前字体完成。

绘制直线

主要用到的内容是Graphics类中的drawLine函数

定义:

public abstract void drawLine(int x1,int y1,int x2,int y2)

x1,y1是起始点的坐标,x2,y2是尾点的坐标

拓展

SetColor(Color color)

setColor是Graphics类中的一个函数,主要是设置颜色作用,其中参数是Color类中的一个对象,用于定义自己的颜色,里面的变量的是RGB,定义的方法:Color color=newe Color(R,G,B)

代码

相关文章:

  • CHIP-SEQ 芯片分析时,对于来自重复实验的数据,怎样进行MACS peaks calling 分析?
  • java end()用法_int regionEnd()
  • CHIP-seq 分析笔记
  • Java默认bigdecimal初始值_BigDecimal精度问题 and double基础类型默认小数位置问题
  • rna-seq分析流程 全套
  • java boxed_Java中的DoubleStream boxed()方法
  • FastQC原始安装
  • java getscheme_外部开启Activity新姿势(scheme)
  • 序列比对 hisat2
  • java 多线程 安全 源码_Java多线程理解:线程安全的集合对象
  • dir file list.file list.dirs
  • 后缀是php,怎么修改php后缀
  • inurl faq.php,使用 PHP
  • r语言中六种方法查看R函数源代码—— 鼠标放在函数上,按下F2
  • php mysqli_affected_rows(),Mysqli_num_rows与PHP中mysqli_affected_rows的区别
  • [case10]使用RSQL实现端到端的动态查询
  • 【mysql】环境安装、服务启动、密码设置
  • 0基础学习移动端适配
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • HTTP中GET与POST的区别 99%的错误认识
  • Java 最常见的 200+ 面试题:面试必备
  • laravel 用artisan创建自己的模板
  • mysql常用命令汇总
  • SpriteKit 技巧之添加背景图片
  • Vue UI框架库开发介绍
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 开发基于以太坊智能合约的DApp
  • #Linux(帮助手册)
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (26)4.7 字符函数和字符串函数
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (javascript)再说document.body.scrollTop的使用问题
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (转)Scala的“=”符号简介
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ./configure、make、make install 命令
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 动态调用WebService + WSE + UsernameToken
  • .net 验证控件和javaScript的冲突问题
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .Net8 Blazor 尝鲜
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET成年了,然后呢?
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .Net转前端开发-启航篇,如何定制博客园主题
  • //解决validator验证插件多个name相同只验证第一的问题
  • /dev/sda2 is mounted; will not make a filesystem here!
  • [ C++ ] STL---string类的模拟实现
  • [Android Pro] AndroidX重构和映射
  • [android] 手机卫士黑名单功能(ListView优化)
  • [AR Foundation] 人脸检测的流程
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)