📄 qtextarea.java
字号:
/**
* 作者:cat 戚永城
* 时间:2008-3-1
* QQ:415898635
* E-Mail: 415898635@qq.com
* qyc_12345@163.com
*
* */
package org.qui.conmponent;
import java.util.Vector;
import javax.microedition.lcdui.Graphics;
import org.qui.container.QSelector;
import org.qui.image.JiugongDiv;
import org.qui.info.Attribute;
import org.qui.info.Key;
import org.qui.manager.QComboItem;
import org.qui.manager.UIManager;
import org.qui.util.StringEx;
public class QTextArea extends QComboItem {
public QTextArea(int x, int y, int width, int height) {
super(x, y, width, height);
onShowSelectedItemNum=100;
br=Attribute.text_backR;
bg=Attribute.text_backG;
bb=Attribute.text_backB;
}
public String text = "";
private boolean showScrollBar=false;
public void append(String text) {
this.text = this.text + text;
line = StringEx.tokenCast(this.text, width-4, font);
if(line.size()>height/fontHeight){
line = StringEx.tokenCast(this.text, width-10, font);
showScrollBar=true;
}
itemSum=line.size();
}
public Vector line = new Vector();
public int onShowItemNum=0;
public void paint(Graphics g) {
int[] clip=new int[4];
clip[0] = g.getClipX();
clip[1] = g.getClipY();
clip[2] = g.getClipWidth();
clip[3] = g.getClipHeight();
g.setClip(x + ui.offx, y + ui.offy, width ,height);
// 画背景
g.setColor(br,bg,bb);
g.fillRect(x + ui.offx, y + ui.offy, width, height);
// 画前景
g.setColor(fr, fg, fb);
g.setFont(font);
// 画边框
int length = itemSum;
for (int i = startItem; i < length; i++) {
g.drawString(line.elementAt(i).toString(), x + ui.offx +2, y + ui.offy +2+ fontHeight * (i-startItem),Graphics.LEFT | Graphics.TOP);
}
// 画scrollBar
if(showScrollBar){
g.drawImage(UIManager.scroll_btn_right, x + ui.offx +width-1,
y + ui.offy +(((height-UIManager.scroll_btn_right.getHeight())/(itemSum-height/fontHeight))*startItem),Graphics.RIGHT|Graphics.TOP);
}
g.setClip(clip[0],clip[1],clip[2],clip[3]);
//if focus
if(focus){
JiugongDiv.drawJiuGong(g, UIManager.light, x + ui.offx - 8, y + ui.offy - 8, width+16,height+16);
}
}
public int startItem = 0;
private int fireCount=0;
public void keyPressed(int keyCode) {
super.keyPressed(keyCode);
if (!ui.selector.inComboItem) {
ui.selector.inComboItem = true;
} else {
if (keyCode == Key.LEFT || keyCode == Key.UP) {
if (startItem > 0) {
startItem--;
}
} else if (keyCode == Key.RIGHT || keyCode == Key.DOWN) {
if (startItem < itemSum - height / fontHeight) {
startItem++;
}
} else if (keyCode == Key.FIRE) {
fireCount = (fireCount + 4) % 3;
if (fireCount == 0) {
} else if (fireCount == 1) {
ui.selector.inComboItem = false;
} else if (fireCount == 2) {
ui.selector.inComboItem = false;
}
}
}
}
public void keyReleased(int keyCode) {
super.keyReleased(keyCode);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -