java drawstring 换行_java Graphics2D drawString()内容换行问题
//字符串总宽度
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@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/ms649011( ...
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- ...
java drawstring 换行_java Graphics2D drawString()内容换行问题相关推荐
- Java 用 Freemarker 生成 Word 时内容换行
一.原因 试过各种换行符 '\r' '\n' '\r\n' '(char)11' 全部都不行!!! 原因是:Java 用 Freemarker 生成 Word 时的换行符被自动解析忽略掉 二.解决方法 ...
- java 写文件换行_java写文件实现换行
第一种: 写入的内容中利用\r\n进行换行 File file = new File("D:/text");try{if(!file.exists()) file.createNe ...
- eclipse java换行_java – 如何强制eclipse换行?
我测试了user714695的建议:通过在字符串中间按Enter键,可以自动正确放置加号,引号和缩进. 另一方面,据我所知,没有内置的方法可以做到这一点:你想要突出显示一个字符串并自动格式化它以适当地 ...
- java输出不换行_java怎样输出不换行?
展开全部 System.out.println()这个是在输出内容之e68a843231313335323631343130323136353331333433653965后换行,而 System.o ...
- poi 单元格内容换行
1.设置单元格内容自动换行 HSSFCellStyle cellStyle=workbook.createCellStyle(); cellStyle.setWrapText(true); cell. ...
- java 小票打印_java 调收银机打印小票
public class MyPrint implementsPrintable{static Logger log = Logger.getLogger(MyPrint.class);//业务类 U ...
- java 打印 小票_java 调收银机打印小票
public class MyPrint implementsPrintable{static Logger log = Logger.getLogger(MyPrint.class);//业务类 U ...
- php代码怎么用换行和空格,php 空格,换行,跳格使用说明
php 空格,换行,跳格使用说明 首先说说\n,\r,\t \n 软回车: 在Windows 中表示换行且回到下一行的最开始位置 在Linux.unix 中只表示换行,但不会回到下一行的开始位置. \ ...
- java drawstring 字体_java - 为什么字体大小为101的Graphics2D.drawString字母“o”坏了? - 堆栈内存溢出...
我想在png中绘制字符串. 我需要高达600像素的字母. 因此我尝试使用Graphics2D.drawString: String text = "o"; graphics.set ...
最新文章
- MFC按钮添加提示文字
- 锐捷交换机配置snmp版本_snmp交换机配置
- 安卓使用Socket发送中文,C语言服务端接收乱码问题解决方式
- 18.虚拟机linux上网问题
- Arithmetic图像处理halcon算子持续更新
- C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
- linux中文件属性mtime,linux stat (三个时间属性命令可用来列出文件的 atime、ctime 和 mtime。)...
- html按键变色,按键变色.html
- day10作用域与闭包
- java 类一定要声明成public_java测试题(四)--答案
- 公司计算机 统一购买 补贴,全国农机购置补贴计算机管理系统开始全面启用
- 如何实现一个通用的分布式事务框架?
- 挑战程序设计竞赛——抽签Ⅱ
- Mac “EdrawMax”已损坏,无法打开。 您应该将它移到废纸篓
- Eviews建立Var模型1
- linux内核配置选项
- python获取windows窗口的内容_Python实现遍历windows所有窗口并输出窗口标题的方法...
- 一次蜿蜒曲折的RFID破解之路
- Python自动生成新闻报告
- word一级标题行距一样宽度不一致