java drawstring 换行_java Graphics2D drawString()内容换行问题

java drawstring 换行_java Graphics2D drawString()内容换行问题字符串总宽度 privateintge Graphicsg Stringstr char strcha str toCharArray intstrWidth g getFontMetri charsWidth strcha 0 str length System out println 字符总宽度 strWidth

//字符串总宽度

private int getStringLength(Graphics g,String str) {

char[] strcha=str.toCharArray();

int strWidth = g.getFontMetrics().charsWidth(strcha, 0, str.length());

System.out.println(“字符总宽度:”+strWidth);

return strWidth;

}

//每一行字符串宽度  自定义  也就是画布中一行的宽度

int rowWidth=1110;

//字符串字符的个数

int strnum= str.length();

//每一行字符的个数

private int getRowStrNum(int strnum,int rowWidth,int strWidth){

int rowstrnum=0;

rowstrnum=(rowWidth*strnum)/strWidth;

System.out.println(“每行的字符数:”+rowstrnum);

return rowstrnum;

}

//字符行数

private int getRows(int strWidth,int rowWidth){

int rows=0;

if(strWidth%rowWidth>0){

rows=strWidth/rowWidth+1;

}else{

rows=strWidth/rowWidth;

}

System.out.println(“行数:”+rows);

return rows;

}

//字符高度

private int getStringHeight(Graphics g) {

int height = g.getFontMetrics().getHeight();

System.out.println(“字符高度:”+height);

return height;

}

ps:Graphics  注意设置font 才能计算宽度和高度

开始绘制

private void drawStringWithFontStyleLineFeed(Graphics g, String strContent, int loc_X, int loc_Y, Font font){

g.setFont(font);

//获取字符串 字符的总宽度

int strWidth =getStringLength(g,strContent);

//每一行字符串宽度

int rowWidth=1110;

System.out.println(“每行字符宽度:”+rowWidth);

//获取字符高度

int strHeight=getStringHeight(g);

//字符串总个数

System.out.println(“字符串总个数:”+strContent.length());

if(strWidth>rowWidth){

int rowstrnum=getRowStrNum(strContent.length(),rowWidth,strWidth);

int rows= getRows(strWidth,rowWidth);

String temp=””;

for (int i = 0; i < rows; i++) {

//获取各行的String

if(i==rows-1){

//最后一行

temp=strContent.substring(i*rowstrnum,strContent.length());

}else{

temp=strContent.substring(i*rowstrnum,i*rowstrnum+rowstrnum);

}

if(i>0){

//第一行不需要增加字符高度,以后的每一行在换行的时候都需要增加字符高度

loc_Y=loc_Y+strHeight;

}

g.drawString(temp, loc_X, loc_Y);

}

}else{

//直接绘制

g.drawString(strContent, loc_X, loc_Y);

}

}

java写文件实现换行

Java 写文件实现换行   第一种: 写入的内容中利用\r\n进行换行 File file = new File(“D:/text”); try { if(!file.exist …

Java 创建文本内容

Java 创建文本内容 import java.io.FileWriter; import java.io.IOException; public class TestFile { public st …

element table 组件内容换行方案

element table 组件内容换行方案 white-space的值: normal 默认.空白会被浏览器忽略.pre 空白会被浏览器保留.其行为方式类似 HTML 中的

 标 ...

java读取文本文件内容2

版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/183 很久之前写了一篇Java读取文本文件内容,链接地址是 …

java读取文本文件内容

版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/128 java读取文本文件内容 今天写代码写着要调试一个很 …

关于Html中的title属性内容换行,以及Bootstrap的tooltip的使用

1.HTML中的title属性的内容换行: 鼠标经过悬停于对象时提示内容(title属性内容)换行排版方法,html title 换行方法总结. html的title属性默认是显示一行的.如何换行呢? …

html title属性内容换行方法(静态页面)

鼠标经过悬停于对象时提示内容(title属性内容)换行排版方法,html title 换行方法总结. html的title属性默认是显示一行的,这里介绍两种换行方法为大家分享使用. 一.直接title …

Java编写email实现内容换行

随机推荐

git上传代码到osc@git

1.get an account 2.get a ssh-key 3.git setting git config –global user.name “….” git co …

jQuery中设置form表单中action值与js有什么不同。。。。

jQuery中设置form表单中action值与js有什么不同…. HTML代码如下:

tornado 第二种路由方法(装饰器)

#!/usr/bin/env python # _*_coding:utf-8 _*_ import tornado.ioloop import tornado.web application = t …

Linux内核之内存管理完全剖析

linux虚拟内存管理功能 ? 大地址空间:? 进程保护:? 内存映射:? 公平的物理内存分配:? 共享虚拟内存.实现结构剖析   (1)内存映射模块(mmap):负责把磁盘文件的逻辑地址映射到虚拟地 …

Centos7安装Xmind

1.首先,下载对应版本的deb包,32bit系统下载32bit软件包,64bit系统下载64bit软件包 2.解压deb包,得到data.tar.gz 和control.tar.gz 两个归档文件 3 …

用saxon框架对xml数据进行过滤 – 程序员的天堂 – ITeye技术网站

用saxon框架对xml数据进行过滤 博客分类: Java   Saxon 是一个 XSLT 和XQuery处理器.它是使用 XML 文档和样式表作为输入,然后生成结果文档作为输出的程序,它还包括了一 …

VB6之WM_COPYDATA

WM_COPYDATA消息是一种进程间通信的一种方式,参考文档如下: http://msdn.microsoft.com/en-us/library/windows/desktop/ms( …

get() got an unexpected keyword argument

TypeError: get() got an unexpected keyword argument ‘news_id’ERROR basehttp 154 “GET /news/3/ H …

Codeforces Global Round 1 自闭记

A:签到. #include #include #include #include …

H3C常用命令详解

H3C常用命令详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1.关闭后台日志输出 sys [yinzhengjie]undo info- …

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222579.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:28
下一篇 2026年3月17日 下午3:28


相关推荐

  • https和http有什么区别(内附详细分析)

    https和http有什么区别(内附详细分析)很多站长知道https和http有所不同,但是究竟两者有什么不同浑然不知,针对这种情况,本文给大家详细分析一下https和http有什么区别。一、基本概念(http服务器–>本地浏览器,正确快速传输;https安全套接字层,http的安全版本,http+ssl层,建立一个信息安全的通道,保证数据传输的安全,确认网站的真实性)1、HTTP:超文本传输协议(HyperTextTransferProtocol)。是互联网上应用最为广泛的一种网络协议,所有的www文件都必须遵守这个…

    2022年10月16日
    4
  • 8000401a 错误 及解决办法[通俗易懂]

    8000401a 错误 及解决办法[通俗易懂]
    “/”应用程序中的服务器错误。
    ——————————————————————————–
    检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误:8000401a。
    说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以

    2022年7月25日
    40
  • 海量图片存储方案

    海量图片存储方案关于图片存储问题 主要关系到了前端的展示问题 怎么存更好 前端怎么展示更方便 随着数据量的级别上升 都有哪些方案 哪些方案更好 我在思考这个问题的时候 主考虑到的是并发量的问题 图片数量过多的问题 以及访问速度的问题 带着这些问题 我有搜索了网上的图片存储的方案 以及去看了电商系统淘宝的方案 还看了 csdn 的图片是如何存的 通过借鉴他们的存储方式 可以作为我们的解决问题的方案 图片如何存储在看了一些博客以后 总结了一下 网上前几页的博

    2026年3月19日
    3
  • java数据导出为excel表格_将数据库表中数据导出到文本文件

    java数据导出为excel表格_将数据库表中数据导出到文本文件公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两张表都导入数据库中,建表的数据如下:其中字段类型被存放到了另一个表中,根据字段的code从另一表去取字段类型:然后通过java程序的方式,从数据库中取出数据自动生成建表语句,代码如下:(主要是提供思路,对于不同的建表规则不能完全适用,SQL语句为oracle数据库SQL语句)importjava.i

    2025年10月4日
    5
  • visual studio code好用的插件(ae的插件)

    最后一款插件真的很实用》》》

    2022年4月13日
    46
  • kfold交叉验证k越大_内部交叉验证

    kfold交叉验证k越大_内部交叉验证交叉验证的原理放在后面,先看函数。设X是一个9*3的矩阵,即9个样本,3个特征,y是一个9维列向量,即9个标签。现在我要进行3折交叉验证。执行kFold=KFold(n_splits=3):其中KFold是一个类,n_split=3表示,当执行KFold的split函数后,数据集被分成三份,两份训练集和一份验证集。执行index=kFold.split(X=X):index是一个生成器…

    2026年2月2日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号