📄 display.java
字号:
/*
* Created on 2004-12-20 by Tianlei
* version 1.0.0.3
* since MIDP1.0
*
* �J2ME���Display��
* TODO Ŀǰֻʵ�����õ���,�ܶ�û���õ��Ķ�ûʵ��,�Ժ��õ��˿���ʵ����4
*/
package javax.microedition.lcdui;
import java.util.Vector;
import javax.microedition.midlet.MIDlet;
import a.a.a.b.*;
import a.a.a.midp.lcdui.BQAlert;
/**
* @author Tianlei
* @version 1.0.0.3
* @since MIDP1.0
*
* �J2ME���Display��
* TODO Ŀǰֻʵ�����õ���,�ܶ�û���õ��Ķ�ûʵ��,�Ժ��õ��˿���ʵ����4
*/
public class Display {
public static final long serialVersionUID=1;
private MIDletManager manager;
/**
* ��ʾ��ǰֻ��һ��Display������
*/
private static Display instance;
/**
* ��ǰ��ʾ��Displayable
*/
private Displayable currentScreen;
public static final int LIST_ELEMENT = 1;
public static final int CHOICE_GROUP_ELEMENT = 2;
public static final int ALERT = 3;
public static final int COLOR_BACKGROUND = 0;
public static final int COLOR_FOREGROUND = 1;
public static final int COLOR_HIGHLIGHTED_BACKGROUND = 2;
public static final int COLOR_HIGHLIGHTED_FOREGROUND = 3;
public static final int COLOR_BORDER = 4;
public static final int COLOR_HIGHLIGHTED_BORDER = 5;
/** Static lock object for LCDUI package */
static final Object LCDUILock = new Object();
/** Static lock object for making calls into application code */
static final Object calloutLock = new Object();
private Vector runVector;
/**
* ˽�й��캯��,ֻ��ͨ��getDisplay(MIDlet)4�õ�Display����
*/
private Display(MIDletManager m) {
super();
manager=m;
runVector=new Vector();
SerialThread thd=new SerialThread(runVector);
thd.start();
}
private void setManager(MIDletManager m){
manager=m;
}
/**
* �õ����midlet��Display �����ֻ������һ����ٵĽӿ�,
* ����ֵ��û��,Ϊ�˸�J2me�Ľӿ�һ��
*
* @param m ��Display��ص�MIDlet����
* @return ����m��Display����
* @since MIDP1.0
*/
public static Display getDisplay(MIDlet m) {
if (instance == null){
instance = new Display(m.getManager());
}else{
instance.setManager(m.getManager());
}
return instance;
}
/**
* �õ���ǰ��ʾ��Displayable
*
* @return ��ǰ��ʾ��Displayable����
* @since MIDP1.0
*/
public Displayable getCurrent() {
synchronized (LCDUILock) {
return (Displayable)currentScreen;
}
}
/**
* ���õ�ǰ�ɼ��Displayable
*
* @param nextScreen Ҫ����Ϊ�ɼ��Displayable����
* @since MIDP1.0
*/
public void setCurrent(Displayable nextScreen) {
synchronized (LCDUILock) {
/*
* ���ԭ4��ʾ����һ��Canvas���������� ������hideNotify����,��ʾ�����ɲ��ɼ���
*/
if (currentScreen instanceof Canvas) {
((Canvas) currentScreen).hideNotify();
}
/*if(currentScreen!=null){
currentScreen.setShown(false);
}*/
currentScreen = nextScreen;
/*
* ����ģ����ĵ�ǰ��Ļ
*/
if (nextScreen instanceof Canvas) {
((Canvas) nextScreen).showNotify();
((Canvas) nextScreen).repaint();
}
if (nextScreen == null){
manager.setCurrent(null);
}else{
manager.setCurrent(nextScreen.getBQDisplayable());
}
}
}
public void setCurrent(Alert alert, Displayable nextDisplayable){
if(alert==null){
throw new NullPointerException();
}
if(nextDisplayable instanceof Alert){
throw new IllegalArgumentException();
}
((BQAlert)alert.instance).setNextDisplayable(nextDisplayable.instance);
setCurrent(alert);
}
public void callSerially(Runnable r){
synchronized(runVector){
runVector.addElement(r);
}
}
class SerialThread extends Thread{
Vector vct;
public SerialThread(Vector v){
vct=v;
}
public void run(){
try{
while(true){
if(!vct.isEmpty()){
Runnable r=(Runnable)vct.get(0);
r.run();
}
sleep(100);
}
}catch(Exception exp){
exp.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -