⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display.java

📁 J2me唆哈的代码
💻 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 + -