📄 customitemmidlet.java
字号:
package com.j2medev.sample.chapter3;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class CustomItemMidlet extends MIDlet {
private Form form = new Form("UIDemo");
private Display display = null;
public void startApp() {
if(display==null) {
display = Display.getDisplay(this);
form.append("你更擅长那个版本?\n");
String[] strs = {"Java 2平台标准版", "Java 2平台企业版", "Java 2平台微型版"};
form.append(new Table(strs));
}
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
class Table extends CustomItem {
private String[] elements;
public Table(String[] elements) {
super("");
if(elements==null || elements.length==0)
throw new IllegalArgumentException();
this.elements = new String[elements.length];
System.arraycopy(elements, 0, this.elements, 0, elements.length);
}
//计算最佳内容区域的宽度
protected int getPrefContentWidth(int height) {
int max = 0;
for(int i=0; i<elements.length; i++) {
int w = Font.getDefaultFont().stringWidth(elements[i]);
if(max<w) max=w;
}
return max + 4;
}
//计算最佳内容区域的高度
protected int getPrefContentHeight(int width) {
return getMinContentHeight();
}
protected void paint(Graphics g, int w, int h) {
//使用白色填充整个屏幕
g.setColor(0xffffff);
g.fillRect(0, 0, w, h);
g.setColor(0);
Font font = Font.getDefaultFont();
int fontHeight = font.getHeight();
int lineHeight = fontHeight+1;
//绘画表格和字符串数组
for(int i=0; i<elements.length; i++) {
g.drawLine(0, lineHeight*i, w-1, lineHeight*i);
String s = elements[i];
int strWidth = font.stringWidth(s);
if(strWidth>w-4) {
do {
s = s.substring(0, s.length()-1);
strWidth = font.stringWidth(s);
}while(strWidth>w-4);
}
g.drawString(s, 2, lineHeight*i+1, Graphics.LEFT|Graphics.TOP);
}
g.drawRect(0, 0, w-1, h-1);
}
//计算最小内容区域宽度
protected int getMinContentWidth() {
return Font.getDefaultFont().stringWidth("...") + 4;
}
//计算最小内容区域高度
protected int getMinContentHeight() {
return (Font.getDefaultFont().getHeight() + 1) * elements.length + 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -