?? textarea.java
字號:
package org.gggeye.easymf.ui;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextField;
import org.gggeye.easymf.log.Logger;
import org.gggeye.easymf.midlet.MIDletManager;
public class TextArea extends View implements Runnable,
javax.microedition.lcdui.CommandListener {
private Command ok = new Command("確定", Command.OK, Command.SCREEN);
private Command cancel = new Command("取消", Command.CANCEL, Command.SCREEN);
/**
* 最多顯示的字符數字
*/
int maxSize;
boolean showCaret = false;
int type;
java.util.TimerTask task;
int size;
Panel panel;
/**
* name表示這個控件的名字
*
* @param name
* @param text
* @param maxSize
* @param type
*/
public TextArea(Panel _panel, String _name, String _value, int _size, int _maxSize,
int _type) {
super(0x0, 0x0, null);
this.panel = _panel;
this.size = _size;
this.maxSize = _maxSize;
this.name = _name;
this.value = _value;
this.maxSize = _maxSize;
this.type = _type;
this.hasFocus = true;
}
public void doPaint(Pen _point, HtmlDocument _htmlDocument) {
_point.save();
_point.setColor(0x0A24C3);
_point.drawRect(left, top, width, height);
_point.setColor(this.fontColor);
String tValue = value;
if(tValue!= null && tValue.length() > 0 && this.type == TextField.PASSWORD){
tValue = "********";
}
_point.drawString(tValue,left + 1, top + 1,20);
int x = left + this.font.stringWidth(value);
if (_htmlDocument.focusIndex == index) {
_point.setColor(0x0A24C3);
paintCursor(x, top,_point);
}else {
if (task != null) {
task.cancel();
task = null;
}
}
_point.reset();
}
/**
* 繪制光標,這個光標是要求閃動得
*/
private void paintCursor(int x, int y, Pen _point) {
//激活task,使空間有一個閃動的光標
if (task == null) {
task = TimerTaskManager.getInstace().add(this, 300);
}
if(showCaret){
_point.setColor(0x3112323);
// if (showCaret ) {
_point.drawChar('|', x + 1, y , 20);
_point.drawChar('|', x + 2, y, 20);
}
// }
}
public void setText(String _value) {
value = _value != null ? _value : "";
}
public void doClick(int _keyCode) {
if(_keyCode == 8){
TextFiledGUI tfg = new TextFiledGUI(value, maxSize, type);
tfg.setCommandListener(this);
tfg.setString(value);
MIDletManager.show(tfg);
}
}
public void run() {
try {
showCaret = !showCaret;
panel.repaint();
//Panel.instance.repaint();
} catch (Exception e) {
Logger.debug(e);
}
// WebBrowser.gcMemory(3000);
}
class TextFiledGUI extends javax.microedition.lcdui.TextBox {
public TextFiledGUI(String text, int maxSize, int constraints) {
super("用戶輸入", text, maxSize, constraints);
this.addCommand(ok);
this.addCommand(cancel);
}
}
public void commandAction(Command c, Displayable d) {
if (c == ok) {
if (d instanceof TextFiledGUI) {
TextFiledGUI t = (TextFiledGUI) d;
this.value = t.getString();
}
} else {
}
MIDletManager.show(panel);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -