文本字符串按照指定宽度折行显示

版权声明:转载时请务必保留以下作者信息和链接
作者:陈维([email protected])作者的网站:http://www.chenwei.mobi

我在使用 JOptionPane 时经常因为文本字符串太长于是 JOptionPane 宽度变的很大,甚至超过了屏幕范围。这个时候就就会感叹如果有宽屏显示器多好啊:)不过没有宽屏也没关系,我们可以从程序根本上解决问题。刚刚写了一个函数用来控制文本在程序界面上显示时按照指定宽度折行。

/***/ /**
*将字符串按照指定宽度添加折行标记.
*
*
@paramtext需要折行的文本字符串.
*
@paramwidth每行的宽度.
*
@paramfm当前文本绘制时的FontMetrics对象.
*
@return折行后的文本字符串.
*/

public static StringwrapText(Stringtext, int width,FontMetricsfm) ... {
if(text!=null&&width>0&&fm!=null)...{
Stringresult
="";
intmaxWidth=fm.stringWidth(text);

if(maxWidth>width)...{
StringtmpString
="";
inttmpLength=0;
for(inti=0;i<text.length();i++)...{
tmpString
=text.substring(i,i+1);
result
+=tmpString;
tmpLength
+=fm.stringWidth(tmpString);
if(tmpLength>=width)...{
result
+="\n";
tmpLength
=0;
}

}

}
else...{
result
=text;
}


returnresult;
}
else...{
returntext;
}

}

折行效果图

文本字符串按照指定宽度折行显示

文本字符串按照指定宽度折行显示

你可能感兴趣的:(字符串)