网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  在图形编程中用textlayout精确绘制字符串     
  文章作者:未知  文章来源:水木森林  
  查看:104次  录入:管理员--2007-11-17  
 
  作者:家居猫

在编写 java 图形程序时,大家通常是用 java.awt.graphics.drawstring( int x, int y ) 来画字符串。但是其效果往往不能满足我们的要求。
其实,java2d提供了更先进的绘制字符串的方法,用 textlayout 可以绘制出相当令人满意的效果。下面是一个例子供大家参考:

//设置字体
font mfont = new font( font, style, (int)size );

//保存当前的着色参数
renderinghints rhs = g.getrenderinghints();

//在 linux 画中文字符时,打开抗锯齿功能可能会影响显示效果。
//所以这里将抗锯齿功能关掉。你也可以经过测试来决定是否关闭此功能。
g.setrenderinghint(renderinghints.key_antialiasing, renderinghints.value_antialias_off);

//下面这段代码测试字符串可能显示的宽度。如果宽度大于 limitwidth,则用 ... 代替多余的部分。
if (limitwidth != -1) {
attributedstring as = new attributedstring(buf);
as.addattribute( textattribute.font, mfont );
textmeasurer tm = new textmeasurer(as.getiterator(), g.getfontrendercontext());
int limitindex = tm.getlinebreakindex(0, limitwidth);
if (buf.length() > limitindex) {
buf = buf.substring(0, limitindex) + "...";
}
}

//构造 textlayout
textlayout tl = new textlayout(buf, mfont, g.getfontrendercontext());

//构造下面这个 textlayout 主要是为了得到英文字符串的全高度。
//因为 "abc" 与 "obj" 所占的高度是不一样的,"j"多占了下面的一部分。
textlayout tmptl = new textlayout("ig", mfont, g.getfontrendercontext());
rectangle2d tmprt = tmptl.getbounds();

//恢复旧的着色参数
g.setrenderinghints(rhs);

//画字符串,注意这里的 x, y 坐标是 textlayout 所占矩形框的左上角坐标。
tl.draw(g, x, (float)(y + tmprt.getheight()));

--摘自 http://www.javaidea.net
 
 
上一篇: 在清单里设置主类    下一篇: 在网页上发布统计曲线(applet)
  相关文档
java力助“渐进式”crm系统框架 11-17
剖析.net下的数据访问层技术(2) 11-17
在java中解读压缩文件 11-17
hibernate分页查询原理解读 11-17
java入门:java语言中的一些常用的词汇 01-03
高性能、高弹性jsp和servlet性能优化 11-23
java servlet api类库中的基本方法介绍 11-17
为 swt windows桌面程序定制适合分发的 jre 11-17
java: isn‘t it ironic? 11-17
诺基亚亲密接触eclipse 深化开源战略 11-17
small 方法 11-16
用 java 保存位图文件(转) 11-17
彻底研究 java 中的正则表达式 11-17
微软在动态语言支持上超越了java? 11-17
介绍——用户认证管理设计方案 11-17
jvm(java虚拟机介绍) 11-17
java:md5加密器 11-16
基于java的web服务器工作原理(1) 11-17
简单介绍javabean 和 ejb 的区别 11-17
用java开源项目joone实现人工智能编程 11-16
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息