Mobile编程题.doc

上传人:asd****56 文档编号:79326599 上传时间:2023-03-21 格式:DOC 页数:6 大小:82.50KB
返回 下载 相关 举报
Mobile编程题.doc_第1页
第1页 / 共6页
Mobile编程题.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《Mobile编程题.doc》由会员分享,可在线阅读,更多相关《Mobile编程题.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、服务器端代码:public class ServerMIDlet extends MIDlet protected void startApp() throws MIDletStateChangeException /监听9999端口try ServerSocketConnection ssc=( ServerSocketConnection)Connector.open(socket:/:9999);/建立连接 /获得服务器端的IP地址和接口 System.out.println(ssc.getLocalAddress(); System.out.println(ssc.getLocalPo

2、rt(); SocketConnection sc=(SocketConnection)ssc.acceptAndOpen(); /等待客户端连接,如果没有客户端连接,程序就在这里阻塞。 /若果有客户端连接,就会返回一个SocketConnection对象,充当通讯的桥梁。 /以后就可以使用sc与客户端进行通讯了 /获取客户端信息 System.out.println(这是服务器的信息=客户端+sc.getAddress(); /获取客户端发送过来的字符串 DataInputStream dis=sc.openDataInputStream(); String msg=dis.readUTF(

3、);/如果没有读到内容,就阻塞 System.out.println(这是服务器接收到的内容:+msg); /服务器给客户端发送欢迎辞 DataOutputStream dos=sc.openDataOutputStream(); dos.writeUTF(欢迎连接服务器); catch (IOException e) 1. 使用J2ME开发一个网络程序,客户端连上服务器,能够送给服务端一个“你好”,服务器端也能够发送给客户端“欢迎连接服务器”。分别写出服务器端和客户端的程序。客户端代码:public class ClientMIDlet extends MIDlet protected vo

4、id startApp() throws MIDletStateChangeException try SocketConnection sc=(SocketConnection)Connector.open(socket:/192.168.0.40:9999);DataOutputStream dos=sc.openDataOutputStream();dos.writeUTF(你好,服务器,我是客户端);/接收服务器端的欢迎辞DataInputStream dis=sc.openDataInputStream();String msg=dis.readUTF();System.out.pr

5、intln(这是客户端接受到的欢迎辞:+msg); catch (IOException e) 2. 模拟手机写短信程序。编程要求:a) 程序载入,出现一个欢迎界面,右下按钮:写短信;左下按钮是:退出程序。b) 选择“写短信”按钮,进入短信编辑界面,界面上有一个文本框输入短信。框内有字时左下方显示:清除文本,否则显示:返回上一个界面:右下方显示按钮:发送。c) 按“发送“,出现一个界面,左下方显示:返回;右下方显示:确定。上面有一个文本框输入对方电话号码,电话号码输入之后,按右下方的“确定”按钮,短信发出,在控制台上显示。以上要求必须至少写出两个界面和至少两个时间处理。public class

6、 MessageMidlet extends MIDlet implements CommandListener,ItemStateListenerprivate Display dis;/*欢迎界面*/private Form welcomeForm = new Form(欢迎界面);private ImageItem welcomeItem;private Command cmdExit = new Command(退出程序, Command.EXIT , 1);private Command cmdWriteMsg = new Command(写短信 , Command.SCREEN ,

7、 1);/*短信编辑(写短信)界面*/private Form frmMsg = new Form(请您输入短信);private TextField tfMsg = new TextField(null, null, 255, TextField.ANY );private Command cmdMsgBack = new Command(返回,Command.BACK ,1);private Command cmdMsgDel = new Command(清除文本,Command.BACK ,1);private Command cmdSend = new Command(发送,Comma

8、nd.SCREEN ,1);/*短信发送界面*/private TextBox tbPhone = new TextBox(请输入对方的手机号码, null, 15, TextField.NUMERIC);private Command cmdPhoneBack = new Command(返回, Command.BACK , 1);private Command cmdOk = new Command(确定,Command.SCREEN ,1);public MessageMidlet() Image welcomeImg = null;try welcomeImg = Image.crea

9、teImage(/bg.jpg);catch(Exception e)e.printStackTrace(); welcomeItem = new ImageItem(欢迎您的到来, welcomeImg,Item.LAYOUT_CENTER, null);protected void startApp() throws MIDletStateChangeException dis =Display.getDisplay(this);dis.setCurrent(welcomeForm);/*欢迎界面初始化*/welcomeForm.append(welcomeItem);welcomeFor

10、m.addCommand(cmdExit);welcomeForm.addCommand(cmdWriteMsg);/*短信编辑界面初始化*/frmMsg.append(tfMsg);frmMsg.addCommand(cmdMsgBack);/frmMsg.addCommand(cmdSend);frmMsg.addCommand(cmdSend);/*发送短信界面初始化*/tbPhone.addCommand(cmdPhoneBack);tbPhone.addCommand(cmdOk);/*事件监听绑定代码*/welcomeForm.setCommandListener(this);fr

11、mMsg.setCommandListener(this);frmMsg.setItemStateListener(this);tbPhone.setCommandListener(this);public void commandAction(Command c, Displayable d) if(c=cmdExit) this.notifyDestroyed(); else if(c=cmdWriteMsg) dis.setCurrent(frmMsg); else if (c=cmdMsgBack) dis.setCurrent(welcomeForm); else if(c=cmdM

12、sgDel) int position=tfMsg.getCaretPosition(); tfMsg.delete(position -1,1); if(tfMsg.size()=0) frmMsg.removeCommand(cmdMsgDel);frmMsg.addCommand(cmdMsgBack); else if(c=cmdSend)dis.setCurrent(tbPhone);else if (c=cmdPhoneBack)dis.setCurrent(frmMsg);else if(c=cmdOk) System.out.println(短信成功发出);System.out

13、.println(短信内容 + tfMsg.getString();System.out.println(短信发送目的地 + tbPhone.getString();dis.setCurrent(welcomeForm);public void itemStateChanged(Item item) if(item=tfMsg)f(tfMsg.size()!=0) frmMsg.removeCommand(cmdMsgBack);frmMsg.addCommand(cmdMsgDel);3. 动画模拟:界面上有个小红球,要求能够慢慢掉下来然后弹起来,要包含暂停和继续的功能。public cla

14、ss MIDlet1 extends MIDlet private BallCanvas bc=new BallCanvas();private Display dis;protected void startApp() throws MIDletStateChangeException dis=Display.getDisplay(this);bc.setTitle(弹跳的小红球);dis.setCurrent(bc);class BallCanvas extends Canvas implements Runnable,CommandListenerprivate int left=50;

15、/左上角x轴的坐标private int top=50;/左上角y轴的坐标private int d=40;/小球直径private int direct=1;/方向1:向下,2:向上private Command cmdPause=new Command(暂停, Command.SCREEN, 1);private Command cmdResume=new Command(继续, Command.SCREEN, 1);private boolean isRunning =true;private Thread th;public BallCanvas()this.addCommand(cm

16、dPause);/程序刚开始运行时只有“暂停”按钮this.setCommandListener(this);/绑定事件监听th=new Thread(this); /程序已开始执行就产生一个线程并启动th.start();protected void paint(Graphics g) g.setColor(0, 255, 0);/设置背景色 /使用背景色涂抹整个屏幕,这叫清屏g.fillRect(0, 0, this.getWidth(), this.getHeight();g.setColor(255,0,0); /设置前景色为红色 g.fillArc(left, top, d, d,

17、0, 360);/画圆 public void run()while(isRunning)if(direct=1)top+;if(top=this.getHeight()-d)direct=2;if(direct=2)top-;if(top=0)direct=1;repaint();/重新绘制try Thread.sleep(10); catch (InterruptedException e) e.printStackTrace();public void commandAction(Command c, Displayable d) if(c=cmdPause)/按下暂停按钮时/按钮变为“

18、继续”按钮this.removeCommand(cmdPause);this.addCommand(cmdResume);isRunning=false;else if(c=cmdResume)this.removeCommand(cmdResume);this.addCommand(cmdPause);isRunning=true;th=new Thread(this);th.start();4. 写一个一维集合和一个二维集合的程序,要求这两个集合都具有添加、删除、修改和遍历的功能。/一维集合的添加、删除、修改、获得对象Vector v = new Vector();v.addElement

19、(中国);/添加元素v.addElement(日本);v.addElement(美国);v.addElement(韩国);v.removeElementAt(1); /删除元素v.setElementAt(China, 0); /修改元素/取得元素,遍历for(int i =0;iv.size();i+) String str = (String) v.elementAt(i);System.out.println(str);/二维集合的示例Hashtable ht = new Hashtable();ht.put(姓名, 张三);/添加元素ht.put(性别, 男);ht.put(年龄, n

20、ew Integer(20);/判断、遍历Enumeration enu1 =ht.keys(); /遍历键集合while (enu1.hasMoreElements() System.out.println(enu1.nextElement().toString();Enumeration enu2 = ht.elements(); while(enu2.hasMoreElements()/遍历值集合System.out.println(enu2.nextElement().toString(); System.out.println(ht.get(性别);/根据键名获得值对象5. 分别使用

21、多线程和定时器做两个版本的电子钟,要求界面上显示的时间每1秒钟秒数增加1秒。版本一:多线程版本public class Midlet9 extends MIDlet private Form frm = new Form(电子时钟);private Display dis;protected void startApp() throws MIDletStateChangeException dis=Display.getDisplay(this);dis.setCurrent(frm);/每隔一秒钟得到当前系统的时间,然后显示在界面上实例化线程类,并启动新的线程TimeThread tt =

22、new TimeThread(); tt.start();线程类:class TimeThread extends Thread public void run() while(true) Date d = new Date();frm.setTitle(d.toString();tryThread.sleep(1000);catch(Exception e) 版本二:定时器版本:public class Midlet10 extends MIDlet private Form frm = new Form(电子时钟);private Display dis;protected void st

23、artApp() throws MIDletStateChangeException 调用dis=Display.getDisplay(this);dis.setCurrent(frm);Timer timer = new Timer(); timer.schedule(new Task(), new Date(), 1000);class Task extends TimerTask public void run() Date d = new Date();frm.setTitle(d.toString();tryThread.sleep(1000);catch(Exception e)

24、6. 设计一个高级界面,要求:使用Form 作为当前界面,选择右边的1、2 按钮,要求能够将按钮标题打印出来。选择右边的第3个按钮,要求退出程序。选择左边的按钮,要求将Form标题改为:返回。使用程序实现这个界面,并添加相应的事件监听。protected void startApp() throws MIDletStateChangeException / 将按钮对象添加到Form对象上面 frm.addCommand(cmdTest);frm.addCommand(cmdEdit);frm.addCommand(cmdEixt);frm.addCommand(cmdAdd);frm.addC

25、ommand(cmdBack);/给Form对象设置事件监听器 使用匿名类实现监听接口/frm.setCommandListener(new CommandOper();frm.setCommandListener(new CommandListener()public void commandAction(Command c, Displayable d) if(c=cmdTest | c=cmdEdit)frm.append(c.getLabel()+n);else if(c=cmdBack)frm.setTitle(返回);elseMidlet1.this.notifyDestroyed

26、(); /退出程序);dis = Display.getDisplay(this);dis.setCurrent(frm);/使用当前类实现监听接口frm.setCommandListener(this);dis = Display.getDisplay(this);dis.setCurrent(frm);public void commandAction(Command c, Displayable d) if(c=cmdTest | c=cmdEdit)frm.append(c.getLabel()+n);else if(c=cmdBack)frm.setTitle(返回);elseMidlet1.this.notifyDestroyed(); /退出程序/使用内部类实现监听接口class CommandOper implements CommandListener public void commandAction(Command c, Displayable d)if(c=cmdTest | c=cmdEdit)frm.append(c.getLabel()+n);else if(c=cmdBack)frm.setTitle(返回);elseMidlet1.this.notifyDestroyed(); /退出程序6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁