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) {
}
}
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) {
}
}
相关文章推荐
- 在J2ME中实现全屏幕显示Canvas的方式
- j2me-显示、移动图像,移动文本
- j2me学习笔记【15】——使用低层用户界面显示文本小实例
- J2ME简单灵活实现手机中自动换行显示文本
- j2me canvas分行显示字符 (经过改良的)(二)
- Canvas的drawText绘制文本自动换行(支持设置显示最大行数)
- j2me在Canvas上绘制大量文本自动换行的实现
- 使用text-overflow:ellipsis实现溢出文本省略号显示无需js
- J2ME–canvas下作出书籍杂志华丽的翻页效果
- vtk类之vtkTextSource:显示一个文本的poly data
- GridView 长文本显示省略号
- Android TextView富文本、显示不同的颜色
- 37-TextView设置文本颜色显示
- IOS 中设置UITextView 显示文本的光标
- 【canvas】伸缩 / 剪裁 / 文本 / 阴影 / 填充图案 / 填充渐变
- Android中Textview显示带html文本二-------【Textview显示本地图片】
- alv读取数据时屏幕显示自定义文本
- 提示文本的隐藏与显示
- 用JAVA实现文本形式的树状结构显示
- C#两个窗体上的Textbox的文本相互显示