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

📄 midlet1.java

📁 此软件可以安装在手机
💻 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 + -