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

📄 formanditemdemo.java

📁 J2ME程序设计实例教程的源码
💻 JAVA
字号:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.IOException;

//应用程序主类
public class FormAndItemDemo extends MIDlet implements CommandListener {
    private Display display;
    private LoginForm login;
    private ImageForm imgForm;
    private Command cmdExit = new Command("退出", Command.EXIT, 1);
    private Command cmdBack = new Command("返回", Command.BACK, 1);
    
    public FormAndItemDemo() {
        display = Display.getDisplay(this);
        login = new LoginForm("登录");
    }
    
    public void startApp() {
        login.addCommand(cmdExit);
        login.setCommandListener(this);
        display.setCurrent(login);
    }
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
    }
    
    public void commandAction(Command cmd, Displayable d) {
        if(cmd == cmdExit) {
            notifyDestroyed();
        }
        else if(cmd == LoginForm.LOGIN_COMMAND) {
            String name = login.getName();
            String password = login.getPassword();
            if(name.equals("Yang Guang") && password.equals("12345")) {
                if(imgForm == null) {
                    String[] imgName = new String[10];
                    for(int i=0; i<imgName.length; i++) {
                        imgName[i] = "/img" + i + ".png";
                    }
                    imgForm = new ImageForm("图片浏览", imgName);
                    imgForm.addCommand(cmdBack);
                    imgForm.setCommandListener(this);
                }
                display.setCurrent(imgForm);
            }
            else {
                login.setInfo("输入用户名或者密码错误,请重新输入!");
            }
        }
        else if(cmd == cmdBack) {
            display.setCurrent(login);
        }
        else if(cmd == ImageForm.NEXT_COMMAND) {
            imgForm.next();
        }
    }
}

//登录界面
class LoginForm extends Form implements ItemStateListener {
    static final Command LOGIN_COMMAND = new Command("登录", Command.SCREEN, 1);
    private TextField tfName;
    private TextField tfPassword;
    private ChoiceGroup cgMode;
    private StringItem siMessage;
    private String name = "";
    private String password = "";
    
    LoginForm(String title) {
        super(title);
        tfName = new TextField("用户名:", "", 10, TextField.ANY);
        tfPassword = new TextField("密  码:", "", 10, TextField.PASSWORD|TextField.ANY);
        String[] elements = {"学生", "老师"};
        cgMode = new ChoiceGroup("登录模式:", Choice.POPUP, elements, null);
        siMessage = new StringItem("提示:\n", "输入用户名,密码!");
        append(tfName);
        append(tfPassword);
        append(new Spacer(getWidth(), 10));//添加一个间隔组件
        append(cgMode);
        append(new Spacer(getWidth(), 10));//添加一个间隔组件
        append(siMessage);
        
        //为当前Form设置项目状态监视器,当Form中Item的状态被改变时,
        //监视器将回调ItemStateListener接口中的方法。
        setItemStateListener(this); 
    }
    
    //ItemStateListener接口中的方法。
    public void itemStateChanged(Item item) {
        if(item == tfName || item == tfPassword) {
            name = tfName.getString();
            password = tfPassword.getString();
            siMessage.setText("输入用户名,密码!");
            if(!name.equals("") && !password.equals("")) {
                addCommand(LOGIN_COMMAND);
                
            }
            else {
                removeCommand(LOGIN_COMMAND);
            }
        }
    }
    
    public String getName() {
        return name;
    }
    
    public String getPassword() {
        return password;
    }
    
    void setInfo(String msg) {
        siMessage.setText(msg);
    }
}

//浏览图片Form
class ImageForm extends Form {
    static final Command NEXT_COMMAND = new Command("下一个", Command.SCREEN, 1);
    private String[] imgnames;
    private Image[] images;
    private ImageItem imgItem;
    private int index = 0;
    
    ImageForm(String title, String[] imgnames) {
        super(title);
        this.imgnames = imgnames;
        images = new Image[imgnames.length];
        for(int i=0; i<images.length; i++) {
            try {
                images[i] = Image.createImage(imgnames[i]);
            }
            catch(IOException ioe) {
                images[i] = null;
            }
        }
        
        imgItem = new ImageItem(imgnames[index], images[index], 
                    Item.LAYOUT_CENTER, "没有图片");
        append(imgItem);
        if(images.length >= 2) {
            addCommand(NEXT_COMMAND);
        }
    }
    
    public void next() {
        index = (index+1)%imgnames.length;
        imgItem.setLabel(imgnames[index]);
        imgItem.setImage(images[index]);
    }
}

⌨️ 快捷键说明

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