📄 procwaitwnd.java
字号:
import java.util.*;
import javax.microedition.lcdui.*;
public class ProcWaitWnd implements ProcObserver, CommandListener {
private static final int GAUGE_MAX = 8;
private static ProcWaitWnd pww;
private Form f;
private Gauge gauge;
private Command stopCMD;
boolean stopped;
boolean stoppable;
int current;
Timer m_timer;
Object m_param;
Cancelable objCancelable;
protected ProcWaitWnd() {
f = new Form("");
gauge = new Gauge("", false, GAUGE_MAX, 0);
stopCMD = new Command("取消", Command.STOP, 10);
f.append(gauge);
f.setCommandListener(this);
m_timer=new Timer();
}
public static ProcWaitWnd getInstance() {
if (pww == null) {
return new ProcWaitWnd();
}
return pww;
}
public void reset() {
current=0;
gauge.setValue(0);
stopped=false;
setStoppable(false);
setTitle("");
setPrompt("");
objCancelable=null;
}
public void updateProgress(Object param1) {
gauge.setValue((current++%GAUGE_MAX)+1);
if(param1!=null && param1 instanceof String){
setPrompt((String)param1);
}
}
public void autoUpdProg(){
PWWTimerTask tt=new PWWTimerTask(this);
this.m_timer.schedule(tt,500,500);
}
public boolean isStoppable() {
return stoppable;
}
public void setStoppable(boolean stoppable) {
this.stoppable = stoppable;
if(stoppable){
f.addCommand(stopCMD);
}else{
f.removeCommand(stopCMD);
}
}
public boolean isStopped() {
return stopped;
}
public void setTitle(String title) {
f.setTitle(title);
}
public void setPrompt(String prompt) {
gauge.setLabel(prompt);
}
public void commandAction(Command arg0, Displayable arg1) {
if(arg0==stopCMD){
if(isStoppable()){
if(!isStopped()){
setStopped(true);
if(objCancelable!=null){
objCancelable.cancel();
}
}else{
setPrompt("现在不能取消!");
}
}
}
}
public void show(Display display) {
display.setCurrent(f);
}
public void exit() {
objCancelable=null;
}
public void setMax() {
gauge.setValue(GAUGE_MAX);
}
public void setStopped(boolean stopped) {
this.stopped=stopped;
}
public void setCancelalbeObject(Cancelable co){
this.objCancelable=co;
}
}
class PWWTimerTask extends TimerTask{
ProcWaitWnd m_pww;
public PWWTimerTask(ProcWaitWnd pww){
m_pww = pww;
}
public void run(){
if( m_pww.isStopped()){
m_pww.m_timer.cancel();
}
m_pww.updateProgress(null);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -