dialog.java

来自「<j2me 开发精解> 詹建光著 里所有的源码。对J2me的开发相当」· Java 代码 · 共 64 行

JAVA
64
字号
package com.j2medev.chapter3.dialog;

import javax.microedition.lcdui.*;

public abstract class Dialog {
    
    protected Display display;
    protected DialogListener listener;//监听器
    protected Displayable restore;//主要存储当前屏幕
    private int eventID;
    
    //构造器中持有display对象,方便调用setCurrent()方法
    protected Dialog(Display display) {
        this.display = display;
    }
    
    //根据用户的选择,调用监听器的方法
    public void dismiss(int code) {
        Displayable curr = display.getCurrent();
        //当前界面不是对话框,方法直接返回
        if (curr != getDisplayable())
            return;
        if (restore != null) {
            display.setCurrent(restore);
        } else {
            display.setCurrent(new Form("任意界面"));
        }
        //如果不注册监听器,那么不会执行任何操作
        if (listener != null) {
            listener.dialogDismissed(this, code);
        }
    }
    
    public void display() {
        Displayable curr = display.getCurrent();
        Displayable dialog = getDisplayable();
        if (curr != dialog) {
            //将当前界面存储起来
            restore = curr;
            display.setCurrent(dialog);
        }
    }
    
    public void display(int event) {
        Displayable curr = display.getCurrent();
        Displayable dialog = getDisplayable();
        this.eventID = event;
        if (curr != dialog) {
            //存储当前界面
            restore = curr;
            display.setCurrent(dialog);
        }
    }

    //子类需要实现此方法,返回用作对话框的界面,比如Canvas或者Form
    protected abstract Displayable getDisplayable();
    //设计监听器
    public void setDialogListener(DialogListener l) {
        listener = l;
    }
    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?