?? textdialog.java
字號:
/********************************************************************
*
* 版權(quán)說明,此程序僅供學(xué)習(xí)參考。不能用于商業(yè)
*
********************************************************************/
package org.pook.ui.form;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import org.pook.log.Log;
import org.pook.ui.core.Platform;
import org.pook.ui.util.FontUtil;
/**
* <b>類名:TextDialog.java</b> </br> 編寫日期: 2006-9-16 <br/> 程序功能描述?? <br/> Demo:
* <br/> Bug: <br/>
*
* 程序變更日期 ??<br/> 變更作??? ??<br/> 變更說明 ??<br/>
*
* @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
*/
public class TextDialog extends Dialog {
private static Log log = Log.getLog("TextDialog");
public TextDialog(String _title, Panel _parent, Display _display, long _timeOut) {
super(_title, _parent, _display, Dialog.DIALOG_TEXT, _timeOut);
this.title = _title;
initView();
}
protected void paint(Graphics g) {
this.initView(); //這個把我給害死了
parent.paint(g);
this.paintTextDialogImpl(g);
}
public void setDialogTitle(String title){
this.title = title;
}
/**
* 彈出個窗??
*
*/
public void paintTextDialogImpl(Graphics g) {
drawRGB(g);
paintDialog(g);
softButton.paint(g);
}
/**
* 因為這段代碼用在sizeChange??
* ??以nokia初始化一個類的時候也會初始調(diào)用這個方??,而且是在類初始化前調(diào)用的.
* ??有會拋出NullPointException.
* 我找了大半天才發(fā)現(xiàn)這個問??.好累.現(xiàn)在??12點了.還沒沖涼
*
*/
protected void initView() {
if(title == null)
return;
int titleWidth = FontUtil.getWidth(font, title);
int width = Platform.WIDTH - 40;
int height = FontUtil.siptRow(font, width, title) * font.getHeight();
view[X] = titleWidth < width ? (Platform.WIDTH/2 - titleWidth / 2 - 10) : 10;
view[Y] = (Platform.HEIGHT/2 - height - 6);
view[WIDTH] = titleWidth < width ? (titleWidth + 20) : width + 20;
view[HEIGHT] = height + 12;
rowTitle = FontUtil.splitOnlyStringToRowString(font, title, width - 6);
}
private void paintDialog(Graphics g) {
fillDialog(g);
paintDailogTitle(g);
}
private void paintDailogTitle(Graphics g) {
g.setColor(fontColor);
for (int i = 0; i < rowTitle.length; i++) {
g.drawString(rowTitle[i], view[X] + 10, view[Y] + 6
+ font.getHeight() * i, Graphics.TOP | Graphics.LEFT);
}
}
private void fillDialog(Graphics g) {
g.setColor(0xFFFFFF);
g.drawRect(view[X], view[Y], view[WIDTH], view[HEIGHT]);
g.setColor(bgColor);
g.fillRect(view[X] + 1, view[Y] + 1, view[WIDTH] - 1, view[HEIGHT] - 1);
}
/**
* 這段代碼在nokia中有很大的問題啊.記住.
* 因為父類有setTitle()??
public void setTitle(String title){
this.title = title;
this.initView();
} */
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -