sysrootslist.java

来自「J2ME程序设计实例教程的源码」· Java 代码 · 共 63 行

JAVA
63
字号
import javax.microedition.lcdui.*;
import java.io.IOException;

/**
 * 该类用于显示本地文件系统中所有的根目录。
 */
public class SysRootsList extends List implements CommandListener {
    private FileManagerMIDlet midlet;
    private Command cmdExit = new Command("退出", Command.EXIT, 1);
    private Command cmdSelect = new Command("选择", Command.ITEM, 2);
    private Image img;
    private String[] roots;
    
    public SysRootsList(FileManagerMIDlet midlet, String[] roots) {
        super("/", IMPLICIT);
        this.midlet = midlet;
        try {
            img = Image.createImage("/derive.png");
        }
        catch(IOException ioe) {
            //
        }
        update(roots);
        addCommand(cmdExit);
        addCommand(cmdSelect);
        setCommandListener(this);
    }
    
    //显示根目录列表
    public void show() {
        Display display = Display.getDisplay(midlet);
        display.setCurrent(this);
    }
    
    //更新根目录列表
    public void update(String[] roots) {
        this.roots = roots;
        deleteAll();
        for(int i=0; i<roots.length; i++) {
            append(roots[i], img);
        }
    }
    
    public void commandAction(Command cmd, Displayable d) {
        if(cmd == cmdExit) {
            midlet.exit();
        }
        else if(cmd == cmdSelect) {
            Thread t = new Thread() {
                public void run() {
                    try {
                        int index = getSelectedIndex();
                        midlet.displayDirList(roots[index]);
                    }
                    catch(IOException ioe) {
                        midlet.showError(ioe.toString(), SysRootsList.this);
                    }
                }
            };
            t.start();
        }
    }
}

⌨️ 快捷键说明

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