📄 stringlayout.java
字号:
/**
*字符串布局类
*@CopyRight:Move2008
*@Author:bedlang
*@Version 1.0 2003/8/28
*/
package mmae.ui;
import javax.microedition.lcdui.*;
import mmae.util.Tool;
public class StringLayout extends Base
{
private int layoutWidth,layoutHeight,layoutX,layoutY;
private int lineGap;
private String text;
private int fontHeight;
private int line;
public StringLayout()
{}
/**
*构造函数<br>
*Str:布局中的字符串<br>
*X:布局的左上角位置<br>
*Y:布局的右上角位置 <br>
*LayoutX:布局顶点X<br>
*LayoutY:布局顶点Y<br>
*LayoutWidth:布局宽度<br>
*LayoutHeight:布局高度<br>
*Gap:各行之间的空隙
*/
public StringLayout(String Str, int LayoutX, int LayoutY, int LayoutWidth, int LayoutHeight, int Gap)
{
setPosition(LayoutX, LayoutY);
text = Str;
layoutX = LayoutX;
layoutY = LayoutY;
layoutWidth = LayoutWidth;
layoutHeight = LayoutHeight;
lineGap = Gap;
int begin = 0;
String s = "";
fontHeight = Tool.getFontHeight();
line = 0;
for(int i=0;i<text.length();i++)
{
char ch = text.charAt(i);
if (Tool.getStrWidth(text.substring(begin,i))>=(layoutWidth-8) || i==text.length() || ch=='\n') //layoutWidth-3中的3为偏移值
{
if(ch=='\n')
begin = i+1;
else
begin = i;
line ++;
}
}
}
/**
*画出字符串
*/
public void draw(Graphics g, int X, int Y)
{
setPosition(X,Y);
draw(g);
}
/**
*画出字符串
*/
public void draw(Graphics g)
{
int i1 = g.getClipX();
int j1 = g.getClipY();
int k1 = g.getClipWidth();
int l1 = g.getClipHeight();
g.setClip(layoutX,layoutY,layoutWidth,layoutHeight);
int begin = 0;
String s = "";
line = 0;
for(int i=0;i<text.length();i++)
{
char ch = text.charAt(i);
if (Tool.getStrWidth(text.substring(begin,i))>=(layoutWidth-8) || i==text.length() || ch=='\n')
{
s = text.substring(begin,i);
g.drawString(s, left, top+line*(fontHeight+lineGap), g.TOP|g.LEFT);
if(ch=='\n')
begin = i+1;
else
begin = i;
line ++;
}
}
g.setClip(i1,j1,k1,l1);
}
/**
*得到StringLayout的宽度
*/
public int getWidth()
{
return layoutWidth;
}
/**
*得到StringLayout的高度
*/
public int getHeight()
{
return fontHeight*line + lineGap*line;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -