⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringlayout.java

📁 MMAE1.0开发者版源代码 用于扩展java me移动开发引擎,这是1.0版的源码.
💻 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 + -