JDK的drawRect(),实际绘制范围比宽度大一个像素

简介: JDK的drawRect(),实际绘制范围比宽度大一个像素

今天研究绘制页面边框,坐标、宽度都是对的,结果比WORD宽了一个像素。反复确认之后,忍不住怀疑:难道是JDK的绘制范围不同?


测试代码

package taishan;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class DrawRectFrame extends TFrame
{
  public DrawRectFrame()
  {
     this.getContentPane().setBackground(Color.WHITE);
     this.getContentPane().setLayout(null);
     setUndecorated(true);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
  }
  @Override
    public void paint(Graphics g)
    {
  super.paint(g);
  g.setColor(Color.RED);
  g.drawLine(0, 0, 20,  0);
  g.drawLine(0, 0,  0, 20);
  g.setColor(Color.BLUE);
  g.drawRect(5, 5, 10, 10);
    }
  public static void main(String[] args)
    {
  DrawRectFrame frame = new DrawRectFrame();
  frame.setSize(600, 400);
  frame.setLocation(100, 100);
  frame.setVisible(true);
    }
}


测试结果(放大到4倍)


image.png

结果分析

坐标是从(0, 0)开始的。如果从5绘制,那么实际上相当于6。


宽度10,是从起始坐标之后的像素开始算10。也就是从5开始,到15结束。明确的说:


不算起始点,占用宽度为10。


算上起始点,占用宽度为11。


实际使用

到了这里就明白了,按照给定宽度,确实是比预想的宽了一个像素。

目录
相关文章
|
监控 算法 Linux
探索Linux中的lz4命令:高效的数据压缩工具
**探索Linux中的LZ4工具:快速数据压缩。LZ4算法提供高速压缩与解压缩,适合实时数据处理。命令行工具如`lz4c`用于文件压缩(`lz4c file.txt compressed.lz4`)和解压缩(`lz4c -d compressed.lz4 decompressed.txt`)。特点是速度快、低内存占用,可选压缩级别。注意命令的实际形式取决于安装的实现,使用前应查阅文档。**
|
10月前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
4645 7
|
SQL 人工智能 JavaScript
重磅!通义千问2.5正式发布
重磅!通义千问2.5正式发布
17881 8
|
Linux API
linux cpu飙高原因排查(有手就行)
其实我们现在已经知道是谁把cpu拉高了,但还不够细,只知道哪个项目出的问题远远不够,我们应该找到罪魁祸首,到底是哪个方法的多少行导致的问题,这才能让老大直呼内行
2426 1
linux cpu飙高原因排查(有手就行)
|
关系型数据库 MySQL 数据库
实时计算 Flink版产品使用合集之是否支持基于非主键列进行数据分割
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
存储 负载均衡 算法
扒一扒Nacos、OpenFeign、Ribbon、loadbalancer组件协调工作原理
前几天有个大兄弟问了我一个问题,注册中心要集成SpringCloud,想实现SpringCloud的负载均衡,需要实现哪些接口和规范。
手机通话记录生成器在线,批量通话记录生成器,通话记录生成器app
铁牛通话记录生成器是可以批量自动生成通话记录的app软件。如何得到“铁牛通话记录生成器”?在手机上进去佰渡baidu浏览器输入,铁牛通话记录生成器,这几个字嗖嗦下就可以,其他的不用输入。也可以看下面的图片中间的绿色模块图标和字母,自己思考一下是什么,伽一下它。
|
机器学习/深度学习 人工智能 数据安全/隐私保护
昇思MindSpore安装教程
昇思MindSpore安装教程
499 0
|
前端开发 小程序 PHP
淘宝、海外代购系统、代购小程序、APP的开发以及源码PHP前端源码
淘宝、海外代购系统、代购小程序、APP的开发以及源码PHP前端源码
|
JSON 数据格式
UE DT Json Operate Plugin Description
UE DT Json Operate Plugin Description
204 0