//字符串总宽度

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实现内容换行

用java编写的发送邮件要使用
来实现换行,而不能使用\n,或者\r\n // 5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发 ...

随机推荐

git上传代码到osc&commat;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&lowbar;COPYDATA

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

get&lpar;&rpar; 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- ...

java drawstring 换行_java Graphics2D drawString()内容换行问题相关推荐

  1. Java 用 Freemarker 生成 Word 时内容换行

    一.原因 试过各种换行符 '\r' '\n' '\r\n' '(char)11' 全部都不行!!! 原因是:Java 用 Freemarker 生成 Word 时的换行符被自动解析忽略掉 二.解决方法 ...

  2. java 写文件换行_java写文件实现换行

    第一种: 写入的内容中利用\r\n进行换行 File file = new File("D:/text");try{if(!file.exists()) file.createNe ...

  3. eclipse java换行_java – 如何强制eclipse换行?

    我测试了user714695的建议:通过在字符串中间按Enter键,可以自动正确放置加号,引号和缩进. 另一方面,据我所知,没有内置的方法可以做到这一点:你想要突出显示一个字符串并自动格式化它以适当地 ...

  4. java输出不换行_java怎样输出不换行?

    展开全部 System.out.println()这个是在输出内容之e68a843231313335323631343130323136353331333433653965后换行,而 System.o ...

  5. poi 单元格内容换行

    1.设置单元格内容自动换行 HSSFCellStyle cellStyle=workbook.createCellStyle(); cellStyle.setWrapText(true); cell. ...

  6. java 小票打印_java 调收银机打印小票

    public class MyPrint implementsPrintable{static Logger log = Logger.getLogger(MyPrint.class);//业务类 U ...

  7. java 打印 小票_java 调收银机打印小票

    public class MyPrint implementsPrintable{static Logger log = Logger.getLogger(MyPrint.class);//业务类 U ...

  8. php代码怎么用换行和空格,php 空格,换行,跳格使用说明

    php 空格,换行,跳格使用说明 首先说说\n,\r,\t \n 软回车: 在Windows 中表示换行且回到下一行的最开始位置 在Linux.unix 中只表示换行,但不会回到下一行的开始位置. \ ...

  9. java drawstring 字体_java - 为什么字体大小为101的Graphics2D.drawString字母“o”坏了? - 堆栈内存溢出...

    我想在png中绘制字符串. 我需要高达600像素的字母. 因此我尝试使用Graphics2D.drawString: String text = "o"; graphics.set ...

最新文章

  1. MFC按钮添加提示文字
  2. 锐捷交换机配置snmp版本_snmp交换机配置
  3. 安卓使用Socket发送中文,C语言服务端接收乱码问题解决方式
  4. 18.虚拟机linux上网问题
  5. Arithmetic图像处理halcon算子持续更新
  6. C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
  7. linux中文件属性mtime,linux stat (三个时间属性命令可用来列出文件的 atime、ctime 和 mtime。)...
  8. html按键变色,按键变色.html
  9. day10作用域与闭包
  10. java 类一定要声明成public_java测试题(四)--答案
  11. 公司计算机 统一购买 补贴,全国农机购置补贴计算机管理系统开始全面启用
  12. 如何实现一个通用的分布式事务框架?
  13. 挑战程序设计竞赛——抽签Ⅱ
  14. Mac “EdrawMax”已损坏,无法打开。 您应该将它移到废纸篓
  15. Eviews建立Var模型1
  16. linux内核配置选项
  17. python获取windows窗口的内容_Python实现遍历windows所有窗口并输出窗口标题的方法...
  18. 一次蜿蜒曲折的RFID破解之路
  19. Python自动生成新闻报告
  20. word一级标题行距一样宽度不一致

热门文章

  1. 工作中,掌握这三个技巧,成为职场达人
  2. ChatGPT通过谷歌L3入职测试,人类码农危矣?
  3. Unity细节操作(固定分辨率,打包窗口化,字体清晰)
  4. 和胎儿说话是最好的胎教方法?其实有更好的
  5. 观“赵玉平团队管理”观后感
  6. java匿名类监听器
  7. flink-DataStream-Source(超级详细)
  8. 时间选择器timePicker实现根据当前选择日期(当天/非当天)禁用时间段
  9. idea切换Git分支时保存未提交的文件
  10. 全新概念的国际学习平台诞生了