createform.java

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

JAVA
73
字号
import javax.microedition.lcdui.*;

public class CreateForm extends Form implements CommandListener {
    private FileManagerMIDlet midlet;
    private TextField tfFileName;
    private ChoiceGroup cgType;
    private String[] typeName = {"文件", "目录"};
    private ChoiceGroup cgProperty;
    private String[] propertyName = {"可读", "可写", "隐藏"};
    
    private Command cmdBack = new Command("返回", Command.BACK, 1);
    private Command cmdCreate = new Command("创建", Command.SCREEN, 2);
    private Displayable backScreen;
    
    public CreateForm(FileManagerMIDlet midlet) {
        super("创建");
        this.midlet = midlet;
        tfFileName = new TextField("文件名:", "", 30, TextField.ANY);
        append(tfFileName);
        
        cgType = new ChoiceGroup("类型:", Choice.EXCLUSIVE);
        for(int i=0; i<typeName.length; i++) {
            cgType.append(typeName[i], null);
        }
        append(cgType);
        
        cgProperty = new ChoiceGroup("属性", Choice.MULTIPLE);
        for(int i=0; i<propertyName.length; i++) {
            cgProperty.append(propertyName[i], null);
        }
        append(cgProperty);
        
        addCommand(cmdBack);
        addCommand(cmdCreate);
        setCommandListener(this);
    }
    
    public void setBackScreen(Displayable backScreen) {
        this.backScreen = backScreen;
    }
    
    public void commandAction(Command cmd, Displayable d) {
        if(cmd == cmdCreate) {
            midlet.showProcessInfo("创建文件.....");
            Thread t = new Thread() {
                public void run() {
                    String name = tfFileName.getString();
                    if(name.endsWith("/")) {
                        midlet.showError("文件名输入错误!包含非法字符'/'\n请重新输入!!!", CreateForm.this);
                        return;
                    }
                    int index = cgType.getSelectedIndex();
                    if(index == 1) {    //目录
                        name += "/";
                    }
                    boolean[] shux = new boolean[3];
                    cgProperty.getSelectedFlags(shux);
                    
                    File f = new File(name);
                    f.setReadable(shux[0]);
                    f.setWritable(shux[1]);
                    f.setHidden(shux[2]);
                    midlet.create(f);
                }
            };
            t.start();
        }
        else if(cmd == cmdBack){
            midlet.backTo(backScreen);
        }
    }
}

⌨️ 快捷键说明

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