2007-07-24

一些实用的图形用户界面方法

来源: 2medev 作者:玩狙青年 评论 0 条
 

这个函数已反复应用于多个手机应用软件平台
用法:参数定义:str——要分割的字符串
font——字体
rowMaxW——分割后每行宽度
支持标示符:
\n 换行
\t 插入两个汉字长度的空格

public static final String[] clipString(String str,Font font,int rowMaxW){
if(str == null)
return null;
if(rowMaxW < font.charWidth('哈'))
rowMaxW = font.charWidth('哈');
int strID = 0;
int rowW = 0;
Vector strManager = new Vector();
char ch = ' ';
while(str.length() > strID){
ch = str.charAt(strID);
switch(ch)
{
case '\n':
strManager.addElement(str.substring(0,strID));
str = str.substring(strID 1);
rowW = 0;
strID = 0;
break;
case '\t':
StringBuffer sb = new StringBuffer(str);
sb.deleteCharAt(strID);
sb.insert(strID," ");
str = sb.toString();
break;
default:
if(rowW font.charWidth(ch) > rowMaxW){
strManager.addElement(str.substring(0,strID));
str = str.substring(strID);
rowW = 0;
strID = 0;
}else{
rowW = font.charWidth(ch);
strID ;
}
}
}
strManager.addElement(str);
String[] o_Str = new String[strManager.size()];
strManager.copyInto(o_Str);
return o_Str;
}


返回结果是一个已切割好的String数组,只要用一个循环打印出来就可以了

public static final void drawClipString(Graphics g,String[] clipStr,Font font,int color,int x,int y){
if(clipStr == null){
System.out.println("drawClipString");
return;
}
int FONTH = font.getHeight();
g.setFont(font);
g.setColor(color);
for(int i=0;i<clipStr.length;i )
g.drawString(clipStr[ i ],x,y i*FONTH,0);
}


参数定义:clipStr——先前分割好的字符串数组
font——字体
color——颜色
x,y——打印的屏幕位置

注重,切割和打印函数的字体参数必须保持一致!

半透明技术(限MIDP2.0)


(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:用C#把文件转换为XML  
下一篇:C#编写发送电子邮件
    评论加载中…
共2页: 上一页 1 [2] 下一页
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号