您的位置:首页 > 其它

j2me-canvas显示文本

2009-12-20 20:41 429 查看
1、"Wege"中,W、e的底部为基准线baseline,ascent是W的底部(基线)和顶部之间的距离,descent是g的底部和W的底部或任何字符的底部之间的距离。leading是文本的descent和邻接行的ascent之间的距离。字体高度是ascent、descent和leading的总和。advance是文本的长度

2、getHeight()度量字体高度,getBaselinePosition()度量ascent。

3、drawString、drawChar、drawChars绘制字符串、字符、字符数组

4、stringWidth()等度量字符宽度。

5、图



6、代码

完成显示两行字符,并在两行尾加上!,并且在第一行的Log的Lo下加上蓝色的下划线,这个线的高度没有超过g的下半部分。

MIDPCanvas.java

package test1;

import javax.microedition.lcdui.*;

public class MIDPCanvas extends Canvas implements CommandListener{

privateMidlet midlet;
privateCommand cmd_exit;
privateString stringline1,stringline2;
private charlineend;
private Fontfont;

publicMIDPCanvas(Midlet midlet ) {
try {
// Set up this canvas to listen to commandevents
stringline1=new String("Log-Log LINE 1") ;
stringline2=new String("第二行") ;
lineend='!';
font=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD,Font.SIZE_SMALL);
this.midlet=midlet;
cmd_exit=newCommand("退出",Command.EXIT,1);
addCommand(cmd_exit);
setCommandListener(this);
} catch(Exception e) {
e.printStackTrace();
}
}

public voidpaint(Graphics g) {
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0, 255, 0);
g.setFont(font);
g.drawString(stringline1, 0, 0, Graphics.TOP|Graphics.LEFT);
g.drawChar(lineend, font.stringWidth(stringline1)+1,0,Graphics.TOP|Graphics.LEFT);
g.drawString(stringline2,0,font.getHeight()+1,Graphics.TOP|Graphics.LEFT);
g.drawChar(lineend,font.stringWidth(stringline2)+1,font.getHeight(),Graphics.TOP|Graphics.LEFT);
g.setColor(0, 100,255);
g.fillRect(0,font.getBaselinePosition(),font.substringWidth(stringline1,0,2),font.getHeight()-font.getBaselinePosition());
}

protected void keyPressed(int keyCode) {
}

protected void keyReleased(int keyCode) {
}

protected void keyRepeated(int keyCode) {
}

protected void pointerDragged(int x, int y){

}

protected void pointerPressed(int x, int y){
}

protected void pointerReleased(int x, int y){

}

public voidcommandAction(Command command, Displayable displayable) {
if (command==cmd_exit){
midlet.exitApp();
}
}

}

Midlet.java

package test1;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Midlet extends MIDlet {
privateDisplay display;
private MIDPCanvas midpcanvas;

publicMidlet(){
display=Display.getDisplay(this);
midpcanvas=newMIDPCanvas(this);
}
public voidstartApp() {
display.setCurrent(midpcanvas);
}

publicvoid pauseApp() {

}
public voidexitApp(){
destroyApp(true);
notifyDestroyed();
}

publicvoid destroyApp(boolean unconditional) {
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: