📄 midlet1.java
字号:
package prj7;
import java.io.IOException;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class midlet1 extends MIDlet implements CommandListener,ItemStateListener {
private Display disp;
/** **************欢迎界面*********************** */
private Form wecolmnFrom = new Form("欢迎界面"); // 这是第一个界面
private ImageItem wecolumnItem; //装载图片的集合
private Image image; //导入图片的方法
private Command comdExit = new Command("退出程序", Command.EXIT, 1);//退出程序的按钮
private Command comdEdit = new Command("写短信", Command.SCREEN, 1);//编写短信的按钮
/** *****************短信编辑界面******************** */
private Form frmMsg=new Form("请输入短信内容");//第二个页面:把textField加载到from 里面,不加就没有setItemStateListener方法
private TextField tfMsg = new TextField("", "", 255, TextField.ANY); //短信页面输入电话的文本框
private Command comdMsgBack = new Command("返回", Command.BACK, 1); //短信页面返回上一层按钮
private Command comdDel = new Command("清除", Command.BACK, 1); //短信页面清除按钮
private Command comdSend = new Command("发送", Command.SCREEN, 1); //短信页面发送按钮
/** *****************发送界面******************** */
private TextBox tbPhone = new TextBox("请输入电话号码", "", 9, TextField.NUMERIC);// 这是第三个界面
private Command comdPhoneBack = new Command("返回", Command.BACK, 1); //发送页面返回上一层按钮
private Command comdOK = new Command("确定", Command.SCREEN, 1); //发送页面确定按钮
public midlet1() {
try {
image = Image.createImage("/img.png");//创建一张在[res]目录下的图片
} catch (IOException e) {//为什么会有异常了[因为在没有加载到res目录下图片时就会产生异常]
e.printStackTrace();
}
wecolumnItem = new ImageItem("欢迎来到写短信的页面", image,
ImageItem.LAYOUT_CENTER, "");//把图片加载到ImageItem里面去
}
protected void startApp() throws MIDletStateChangeException {
disp = Display.getDisplay(this);
disp.setCurrent(wecolmnFrom); //显示第一个欢迎界面
/** *****************欢迎初始化页面******************** */
wecolmnFrom.append(wecolumnItem); //把ImageItem添加到from窗体里
wecolmnFrom.addCommand(comdExit); //把退出按钮添加到from窗体里
wecolmnFrom.addCommand(comdEdit); //把编辑按钮添加到from窗体里
/** *****************编辑初始化页面******************** */
frmMsg.append(tfMsg); //把TextField添加到窗体里面去(为什么不用TextBox了,希然textBox能显示全屏,但是它没有setItemStateListener状态事件,没有状态改变事件就不能对窗体里面的按钮进行修改[比如:在没有文本的情况下删除左下方的(删除)按钮,重新添加左下方的(返回)按钮])
frmMsg.addCommand(comdMsgBack); //同时也将编辑界面返回按钮添加到窗体里
frmMsg.addCommand(comdSend); //同时也将编辑界面发送按钮添加到窗体里
/** *****************输入号码初始化页面******************** */
tbPhone.addCommand(comdPhoneBack); //将输入界面的返回按钮添加到textBox里面.(为什么在这里就可以用textBox了,因为他继承Diaplayable类能显示全屏、再者它不用Item状态改变事件)
tbPhone.addCommand(comdOK); //将输入界面的确定按钮添加到textBox里面
/** *****************事件绑定代码******************** */
wecolmnFrom.setCommandListener(this);//[欢迎界面]窗体触发按钮事件进行绑定
tbPhone.setCommandListener(this);//[发送界面]textBox触发按钮事件进行绑定.因为textBox是displayable的子类所以能显示全屏
frmMsg.setCommandListener(this);//[编辑界面]按钮事件绑定
frmMsg.setItemStateListener(this);//[编辑界面]Item 状态事件
}
public void commandAction(Command c, Displayable d) {
if (c == comdExit) { //如果你选择退出按钮的话
this.notifyDestroyed(); //退出程序的语法
} else if (c == comdEdit) { //如果你选择编辑按钮的话
disp.setCurrent(frmMsg);//导向短信编辑页面
} else if (c == comdMsgBack) {//如果你选择短信页面返回按钮的话
disp.setCurrent(wecolmnFrom);//导向第一个欢迎页面
} else if (c == comdDel) { //如果你选择短信删除按钮的话
int position = tfMsg.getCaretPosition();//获取textField文本的下标
tfMsg.delete(position - 1, 1);//textField删除事件(删除它的前一个字符,一次只删除一个)
if(tfMsg.size()==0) //如果textField文本的大小等于0
{System.out.println("aaaaaaaaaaaaaaaaa");//测试是否走到这里面
frmMsg.removeCommand(comdDel);//短信编辑页面删除指定左下方(删除按钮)
frmMsg.addCommand(comdMsgBack);//删除完左下方的(删除按钮)之后添加新的返回按钮
}
} else if (c == comdSend) { //如果等于短信页面发送按钮
disp.setCurrent(tbPhone);//导向发送页面的电话号码输入框
} else if (c == comdPhoneBack) {//如果你选择了发送页面的返回按钮
disp.setCurrent(frmMsg);//导向短信编辑页面
} else if (c == comdOK) { //如果等于发送页面确定按钮
System.out.println("您的短信息已成功发出!!!");
System.out.println("短信内容为:"+tfMsg.getString()); //打印短信内容
System.out.println("发送手机号码为:"+tbPhone.getString()); //打印发送手机号码
}
}
//Item 状态改变事件(也就是说当你在文本框里面输入文本时就会触发此事件)
public void itemStateChanged(Item i) {
if(i==tfMsg) //如果Item 状态事件(改变)等于(短信页面输入电话的文本框)
{
if(tfMsg.size()!= 0)//短信页面输入电话的文本框的大小[不等于]0时.(就是说短信输入框里面没有值的情况下)
{System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbbb");//测试是否走到这里面
frmMsg.removeCommand(comdMsgBack); //编辑页面删除左下方的返回页面
frmMsg.addCommand(comdDel); //编辑页面重新添加[(左下方的)删除]按钮
}
}
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -