刚学j2me,仿照示例做了两个Form,并添加了相应的command,运行后,点击Form1中的按钮,进入到了Form2,再按Form2中的按钮,我想退出或是退回Form1,但界面就不变化了,调试时按Form1中的按钮会暂停下来,但按Form2中的按钮就没反应了。下面是代码,请大家帮我看一下,谢谢!
public class Login extends MIDlet implements CommandListener {
TextField UserName = null;
TextField Password = null;
Form authForm, mainscreen;
TextBox t = null;
StringBuffer b = new StringBuffer("hello\n");
private Display myDisplay = null;
private Command okCommand = new Command("OK", Command.OK, 1);
private Command exitCommand = new Command("Exit", Command.EXIT, 2);
private Command backCommand = new Command("Back", Command.BACK, 2);
private Alert alert = null;
public Login() {
myDisplay = Display.getDisplay(this);
UserName = new TextField("Your Name", "gleosoft", 16, TextField.ANY);
Password = new TextField("Password", "gleotechadmin", 16, TextField.ANY);
authForm = new Form("Identification");
mainscreen = new Form("Logging IN");
mainscreen.append("Logging in....");
mainscreen.addCommand(backCommand);
authForm.append(UserName);
authForm.append(Password);
authForm.addCommand(okCommand);
authForm.addCommand(exitCommand);
}
public void startApp() throws MIDletStateChangeException {
authForm.setCommandListener(this);
myDisplay.setCurrent(authForm);
}
public void pauseApp() {
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
}
public void commandAction(Command c, Displayable d) {
if ((c == okCommand) && (d == authForm)) {
if (UserName.getString().equals("") || Password.getString().equals("")) {
alert = new Alert("Error", "You should enter Username and Password", null,
AlertType.ERROR);
alert.setTimeout(Alert.FOREVER);
myDisplay.setCurrent(alert);
} else {
// myDisplay.setCurrent(mainscreen);
login(UserName.getString(), Password.getString());
}
}
if ((c == backCommand) && (d == mainscreen)) {
myDisplay.setCurrent(authForm);
}
if ((c == exitCommand) && (d == authForm)) {
notifyDestroyed();
}
}
public void login(String UserName, String Password) {
HttpConnection connection = null;
DataInputStream in = null;
String url = "http://localhost/j2me.htm";
OutputStream out = null;
try {
// 省略了一些代码
mainscreen.append(b.toString());
if (in != null)
in.close();
if (out != null)
out.close();
if (connection != null)
connection.close();
} catch (IOException x) {
}
myDisplay.setCurrent(mainscreen);
}
}
问题补充:gundumw100 写道
url = "http://localhost/j2me.htm";
这里是不是再联网啊,需要再开一条线程的!
你好,原本代码是要访问网络的,可以正常访问的,但就是不能再进入别的界面了,所以我就把访问网络的代码取消了,但问题还是老样子,不知道怎么弄了。
相关推荐
本资源“j2me新手学习全套示例源代码”是专为初学者设计的一系列实践教程,涵盖了J2ME开发中的多个关键知识点。通过这些源代码,新手可以更好地理解J2ME的基本概念和编程技巧。 1. **人物移动**:在游戏开发中,...
9. **游戏状态管理**:游戏通常有多个状态(如游戏开始、游戏进行、游戏结束),开发者需要设计一套状态机来管理这些状态的切换。 10. **优化技巧**:由于J2ME设备性能限制,开发者需要进行各种优化,比如减少对象...
6. **游戏状态管理**:游戏通常有多个状态(如开始菜单、游戏进行中、暂停、结束),这些状态之间的切换需要精心设计。 **学习与实践建议:** 1. **阅读源代码**:逐个研究提供的源代码,理解每个类和方法的作用,...
- **状态管理**: 游戏通常包含多个状态(如菜单、游戏进行中、暂停等),使用State设计模式可以方便地切换和管理这些状态。 - **对象池**: 对于频繁创建和销毁的对象,如子弹或敌人,使用对象池可以提高性能,避免...
更复杂的动画可通过精灵(Sprites)技术实现,即多个图像帧的切换。 六、音频处理 j2ME的MIDP提供了一个简单的音频API,支持播放单声道的MIDI和WAV音频文件。开发者需要预先加载音频资源,并通过Sound类控制播放。...
游戏通常有多个状态(如开始、游戏进行、暂停、结束等),开发者需要维护一个状态机来管理这些状态的切换。 7. **优化与性能** J2ME设备的硬件资源有限,因此游戏的性能优化至关重要。这可能涉及到减少绘图操作、...
7. **游戏状态管理**:游戏通常有多个状态,如主菜单、游戏进行中、游戏结束等。通过状态机模式,可以有效地管理这些状态的切换和逻辑。 **学习资源与实践** 要学习J2ME游戏开发,可以从官方文档开始,了解基本的...
7. **状态管理**:游戏通常包含多个状态,如开始界面、游戏进行中、游戏结束等。开发者需要设计一个状态机(GameStateMachine)来管理这些状态的切换。 8. **碰撞检测**:这是游戏中的关键部分,用于判断潜艇与炮弹...
总的来说,"j2me 俄罗斯方块源码"不仅仅是一个游戏,它是J2ME编程技术的具体应用实例,涵盖了图形绘制、事件处理、对象模型设计等多个方面,对于学习和理解J2ME开发具有很高的参考价值。通过分析和研究这个源码,...
本套资料工具非常适合在手机上学习、开发j2me应用。具体包括: 1.8本官方j2me编程类库参考,可以使用uc浏览器查看。 2.tengge手机端j2me教程,80多节,内含示例程序、做好的软件和效果图片。 3.手机端j2me编译...
在J2ME中,我们可以使用`javax.microedition.midlet.MIDlet`作为主类,`javax.microedition.lcdui.Canvas`作为游戏画面的基础。 3. **游戏对象** - **蛇**:蛇由一系列坐标点表示,通过改变头部位置并移除尾部来...
- 状态管理:游戏可能有多个状态,如开始、进行中、结束等,需要一个状态机来管理这些状态的切换。 **4. 图标图片资源** 游戏中的图标和图片是游戏视觉效果的关键组成部分。在J2ME中,图片通常以.png或.jpeg格式...
7. **状态管理**:游戏可能有多个状态(如开始菜单、游戏进行、暂停、结束等),使用StatePattern可以方便地管理这些状态的切换。 8. **存储和加载进度**:如果游戏支持保存和加载进度,J2ME的RecordStore API可...
"XML.rar_J2me online game"是一个示例项目,旨在展示如何在J2ME环境中利用XML进行在线游戏的开发。这个初级教程对于刚接触J2ME的开发者来说,是一次很好的学习机会。 **1. J2ME简介** J2ME是一种简化版的Java平台...
在本文中,我们将深入探讨基于Java 2 Micro Edition (J2ME) 的动作类游戏开发。J2ME是一个用于开发移动设备和嵌入式系统的Java平台,尤其适用于创建功能丰富的移动游戏。标题提及的"分享一个J2ME的动作类游戏代码...
综上所述,通过对"J2ME射击游戏Demo"的源码分析,我们可以学习到J2ME游戏开发的基本技巧和最佳实践,包括游戏循环、事件处理、图形绘制、碰撞检测、性能优化以及数据存储等多个方面。这对于想要进入J2ME游戏开发领域...
5. **状态管理**:游戏有多个状态,如开始菜单、游戏进行中、游戏结束等。开发者需要使用状态机模式来管理这些状态的切换。 6. **资源管理**:游戏中的图片、音频等资源,需要通过J2ME的`Image`类加载,并有效管理...
- **游戏状态管理**:游戏可能有多个状态(如开始、游戏进行中、暂停、结束等),源码中应有状态机管理这些状态的切换。 - **资源管理**:游戏中的图像、音频等资源需要正确加载和释放,以优化内存使用。 4. **...
5. **状态管理**:游戏有多个状态,如开始、暂停、游戏进行中、游戏结束等。源代码会有一个状态机来管理这些状态,根据游戏进程切换不同的状态。 6. **关卡设计**:推箱子游戏通常包含多个关卡,每个关卡有不同的...