文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程J2EE/J2MEMIDP终端模拟之一:一个简单的模拟器MIDlet
精品推荐
特别推荐
·J2EE Web开发技术期待一次新的技术变革
·J2ME程序开发初学者快速入门的九大要点
·使用技巧:J2ME中程序优化的十个小方法
·RMS从入门到精通之一
·J2EE应用程序中SQL语句的自动构造方法
·解决J2EE系统应用性能问题常用优化项目
·J2EE实用技巧:提升JSP应用程序的绝招
·J2ME内存优
·J2ME简介
·J2EE技术
热点TOP10
·FC API(JSR 75)简单讲解
·J2ME程序开发初学者快速入门的九大要点
·游戏框架之心得体会(1)
·在J2EE中APPLET和HTML作为客户端的比较
·Eclipse入门?使用指南及开发Eclipse插件
·jboss配置系列第一天
·一个2D图形绘画的案例
·类似卫星扫描效果
·扫描屏幕和颜色渐变的效果
·一个基于MIDP的迷宫游戏

MIDP终端模拟之一:一个简单的模拟器MIDlet

日期:2008年6月6日 作者: 查看:[大字体 中字体 小字体]


您应该记住一个细节:在测试它是设备上的 up 还是 down 按钮之前,您必须将键代码转换为游戏代码。某些设备上映射到 up 或 down 概念的键不只一个,有些有滚轴或其他专用的输入设备;使用 getGameAction() 能使该方法在所有情况下都能正确工作。keyRepeated() 也可做很多相同的工作,但是一次会移动滚动偏移量半个屏幕。

Telnet MIDlet

现在我们有了一个用于后端的前端,我们需要将他们与 MIDlet 结合成一体。Weather Underground 仍旧提供了一个免费的 telnet 服务,使用它编写一个 MIDlet 以检索最新的天气状况是一个有用的练习。而且,这个任务很有代表性,正是您希望用终端模拟 MIDlet 所做的那类事情:连接到远程服务器、登录和提取某类数据显示在屏幕上。

看一看 MIDTerm.java 的清单。它是一个极其标准的 MIDlet,从应用程序描述符中读取配置选项,然后设置显示和命令。在启动时,startApp() 调用 connect()connect() 则生成调用 run() 的新线程:

public void run()
{
    String connectString = "socket://" + host + ':' + port;
    
    try
    {
        canvas.receive( toASCII( "Connecting...\n" ) );
        
        connection = new TelnetConnection( 
            (StreamConnection) Connector.open( 
                connectString, Connector.READ_WRITE, true ) );
        input = connection.openInputStream();
        output = connection.openOutputStream();
        
        // server interaction script
        try
        {
            // suppress content until first "continue:" 
            waitUntil( 
                input, new String[] { "ontinue:" }, false );
            output.write( toASCII( "\n" ) );
            output.flush();
            
            // show content until city code prompt
            waitUntil( 
                input, new String[] { "code--" }, true );
            output.write( toASCII( city + '\n' ) );
            canvas.receive( toASCII( city + '\n' ) ); 
            output.flush();
            
            // keep advancing pages until "Selection:" prompt
            while ( !"Selection:".equals( 
                waitUntil( input, new String[] { 
                    "X to exit:", "Selection:" }, true ) ) )
            {
                output.write( toASCII( "\n" ) );
                output.flush();
                canvas.receive( toASCII( "\n" ) );
            }
            // exit will cause disconnect
            output.write( toASCII( "X\n" ) );
            output.flush();
            canvas.receive( toASCII( "X\n" ) );
            
            // keep reading until "Done" or disconnected
            waitUntil( input, new String[] { "Done" }, true );
        }
        catch ( IOException ioe )
        {
            System.err.println( 
                "Error while communicating: " 
                + ioe.toString() );
            canvas.receive( toASCII( "\nLost connection." ) );
        }
        catch ( Throwable t )
        {
            System.err.println( 
                "Unexpected error while communicating: " 
                + t.toString() );
            canvas.receive( toASCII( 
                "\nUnexpected error: " + t.toString() ) );
        }
    }
    catch ( IllegalArgumentException iae )
    {
        System.err.println( "Invalid host: " + host );
        canvas.receive( toASCII( "Invalid host: " + host ) );
    }        
    catch ( ConnectionNotFoundException cnfe )
    {
        System.err.println( 
            "Connection not found: " + connectString );
        canvas.receive( toASCII( 
            "Connection not found: " + connectString ) );
    }        
    catch ( IOException ioe )
    {
        System.err.println( 
            "Error on connect: " + ioe.toString() );
        canvas.receive( toASCII( 
            "Error on connect: " + ioe.toString() ) );
    }        
    catch ( Throwable t )
    {
        System.err.println( 
            "Unexpected error on connect: " + t.toString() );
        canvas.receive( toASCII( 
            "Unexpected error on connect: " + t.toString() ) );
    }        
    
    // clean up
    disconnect();
    canvas.receive( toASCII( "\nDisconnected.\n" ) );
}


上一页 [1] [2] [3] [4] [5] [6] [7] 下一页 




上一篇:MIDP终端模拟之二:高级终端模拟

下一篇:J2EE入门教程之四

相关文章:
·我和一个偷尝禁果的女孩的故事
·李彦宏:三分之一时间用在寻找人才
·模拟城市4秘籍
·Windows Vista Ultimate中文旗舰版下载+简单破解(支持迅雷HTTP & BT)
·人生哲理:一个人最重要的是他的内心
·DVD转换MPEG-4三部曲之一
·Photoshop十余种漂亮照片边框简单制作技巧
·如何建立一个网站?规划、设计、目的、原则、宣传
·简单方法查找黑客老巢
·IE新开窗口最大化最简单有效方法
相关软件:
·模拟城市3000(Sim City 3000)简体中文版
·NDS《逆转裁判4 完美汉化简体中文版》模拟器
·一个真实的宋美龄
·整形模拟软件_非常face V1.0
·一个人的ktv
·《铁拳5》模拟器
·模拟人生 2
·《拳皇97》加强版 风云再起 模拟器
·功能较强的一个FLASH编辑器
·枪战类街机《高级战争2金手指》模拟器

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot