初学J2ME时,看过的好文章(二)

J2ME游戏开发实例讲解 文章来源:J2ME开发网一、序言  昨天在网上闲逛,发现一篇讲解用delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到手机中去的冲动.现在手机游戏琳琅满目,不一而足,华容道的实现版本也很多.正巧不久前笔者对J2ME下了一番功夫,正想借这个机会小试牛刀。选用J2ME的原因还有一个就是目前Java开发大行其到,无线增殖业务迅猛发展,J2ME的应用日渐活跃起来,也希望我的这篇文章能 阅读详情
 

用惯的J2ME高级UI而还没有接触过低级UI的developer一定不会习惯跟Canvas的初夜!因为他没有Form那么多可以触摸到风情万种,也没有Item的独特风味,有的只是一个只画笔一个画布,一些只有名字的事件响应方法,更奇怪的事情是你不能手动的调用paint()去做你想做的事情,一切你都只能任凭系统摆布!今日话题 — J2ME Canvas 开发小解 [请注意不是小姐,你可以理解为详解] !

所要将的几个问题:

一.首先是一些朋友的疑惑:

1.如何去实现一个J2ME Canvas的输入框?想TextField那种!

从这里开始基本就进入我们的正题了。在现在这个人工智能技术还相当不成熟的计算机时代,用户交互最重要的凡是无非就是向计算机系统提供数据和指令让其返回执行结果以供我们使用。所以,但你需要开发一个J2ME程序的时候,数据交互是必不可少的,当受够了LCDUI那丑陋的界面(或者说不个性的界面,实际上就是系统调用嘛)的时候,Canvas和CustumItem是一个最容易想到的办法,实际上要从底层实现的话也只有这个方法。由于CusomItem还是摆脱不了Command的束缚,所以Canvas是你最自由的空间,但是自用永远都是属于强者的。不要奢望很简单的一个new就能完成。NOW BEGIN …

要想在Canvas里面直接实现一个类似于TextField那样的输入框是不可能的!请注意:它的意思是“画布”,也就是说之能画东西。不要着急,会给你笔的 — Graphics ! 要如何去实现一个输入框呢? 这样的: 画一个矩形 — 响应用户点击事件 — 打开TextBox — 完成输入 — 返回输入结果 — 将得到的结果画在刚才画的那个矩形里面 ! 搞定

也看到有的说,在底层自己去实现一个输入法。我觉得这是一个极其愚蠢的说法,我用ARM处理再加上一个液晶显示器完成一个输入的功能,其调用过程是相当繁琐的。呵呵,所以想要自己实现输入法并显示字体的暂时打住吧。

2.如何在Canvas里面实现一个滚动条?用起来UE(User Experance)一定能好一点!

要完成一个滚动条,需要做两件事: 1.判断是否需要滚动条;2.去绘制这个滚动条 。 Canvas不会在你需要ScrollBar的时候自己出现,她永远没有isNeeded()这种好事提供给你。下面将会有一些示例性代码。

3.如何去实现一个用J2ME Canvas做到菜单?这是必须的。

所谓菜单,也就是屏幕上面显示的像菜单的东西罢了,说到底还是要自己画的,只是选择画的位置不一样而已。好了,稍候给出实现方式。

4.Canvas中输入法的实现?!好难的问题。

上面已经说了,可能性不太大,要不自己去看J2ME的源代码,可以试试。(去参考当打开TextField的时候都使用了些什么系统调用,哈哈)

5.Canvas之间为啥会出现重叠现象?如何去做到让一个Canvas隐藏起来?

出现Canvas图像重叠这个问题其实是很简单的,因为你都是画在屏幕上面的啊,而屏幕只有一个,再因为Canvas是透明的,呵呵。这个是默认值。所以,一般情况下如果你不需要其他颜色的画就是在初始化的时候将Canvas全部填充为白色,如下:

[方法一]int i = 0 ;

while(i < this.getHeight()){

g.drawLine(0,i,this.getWidth(),i,Graphics.Top|Graphics.LEFT);

}

[方法二]

g.fillRect(0,0,this.getWidth(),this.getHeight());

6.如何退出一个Canvas?或者说怎么从一个Canvas切换到另外一个Canvas?

Canvas类没有提供类似于hidden()这样的方法,而是只提供了一些检查型的方法,例如 isShow() 。而还有例如showNotify()这样的方法都是系统去调用的。这个通常是当你调用setCurrent()的时候系统回去将需要显示的现实处理。所以,要做Canvas之间实现切换无非就是这么做: setCurrent(ANOTHER Displayable) 。

二.小总结一下,阐释一下疑惑:

造成诸多的不可操作和操作繁琐的原因无非就是一个:JAVA希望你自由。你要自由的话,那就自己去画吧,想怎么画怎么画,想怎么做怎么做。一切都要你自己去实现。

【FIRST】J2ME Canvas提供的一些我们要用到的方法:

在J2ME游戏编程中,Canvas类是最常用的类之一,该类提供了获得手机屏幕属性、绘制界面以及事件处理等很多实用的功能,下面就系统的介绍一下该类的使用,并结合实际说明一下在实际的使用过程中需要注意的一些问题。

       Canvas类是Displayable的子类,主要用来需要处理低级事件,例如键盘按键事件等,以及需要绘制屏幕的程序。在实际的使用过程,一般都通过继承Canvas来利用该类提供的功能。Canvas类是一个抽象类,继承该类的时候必须覆盖paint方法。

       Canvas类的功能主要包含以下几类:

1、  获得手机屏幕属性

         getHeight——获得屏幕可用高度

         getWidth——获得屏幕宽度

         isDoubleBuffered——是否支持双缓冲

         hasPointerEvents——是否支持指针设备

         hasPointerMotionEvents——是否支持指针动作,例如拖拉事件

         hasRepeatEvents——是否支持重复按键

实际开发过程中,可以在程序中直接调用这些方法,通过返回值获得相应的属性信息。

2、  绘制方法

         paint——绘制方法

         repaint——重新绘制方法

paint方法需要在界面类中覆盖,然后就可以书写功能,而再需要重新绘制的时候手动调用repaint方法。

3、  事件处理

低级用户界面的事件处理分为两种:按键事件和指针事件(处理触摸屏手机的低级事件)。

支持按键事件的方法主要有三个:

         keyPressed——按键按下的事件

         keyReleased——按键释放的事件

         keyRepeated——重复按键的事件

支持指针事件的方法也有三个:

         pointerPressed——指针设备按下事件

         pointerReleased——指针设备释放事件

         pointerDragged——指针设备拖拉事件

在实际的编程中,只需要在界面类中覆盖这些方法,然后在方法的内部书写代码即可,在发生这些事件的时候,系统会自动调用这些方法。

4、  其他方法

         getGameAction——将按键映射成游戏动作

         getKeyCode——将游戏动作转换为键值

         getKeyName——将键值转换为按键名称

         hideNotify——在Canvas界面被隐藏的时候系统自动调用该方法

         showNotify——当Canvas界面显示的时候系统自动调用该方法

         serviceRepaints——强制系统重新绘制

以上方法除了hideNotify、showNotify需要在子类中覆盖,系统会自动调用以外,其他的方法都可以直接调用。

5、  系统的熟悉主要分为两个部分:

         按键的键值

KEY_NUM0、KEY_NUM1、KEY_NUM2、KEY_NUM3、KEY_NUM4、KEY_NUM5、KEY_NUM6、KEY_NUM7、KEY_NUM8、KEY_NUM9分别对应手机键盘的0-9数字键,KEY_STAR对应*号键,KEY_POUND对应#号键。各个功能键的键值在Canvas类没有进行定义,所以各个厂商,甚至厂商的不同型号手机之间,的键值都有所不同。但是功能键的键值均小于0。

         游戏动作

UP、DOWN、LEFT、RIGHT和FIRE,分别对应上、下、左、右和确定键,在实际的手机中一般分别对应2、8、4、6和5键以及功能键中的方向键。GAME_A、GAME_B、GAME_C、GAME_D分别对应游戏中的A、B、C和D键,分别映射成手机上的1、3、7、9键,或者是7、9、*和#键。

在实际的事件处理中,使用游戏可以达到在不同的手机之间通用。

        在MIDP2.0中,又新增了两个方法,分别是:

        setFullScreenMode——控制屏幕是全屏幕显示还是一般模式显示

        sizeChanged——当屏幕尺寸变化的时候,系统会自动调用该方法。

上面系统的介绍了Canvas类提供的功能,下面就介绍一下它的使用。当调用Display对象的setCurrent方法显示Canvas界面时,系统首先调用Canvas对象的构造方法,然后调用paint方法实现绘制,这样我们就可以看到实际的界面了。而以后,当界面坐标发生变化以后,必须手动调用repaint方法实现绘制。

以下是一些在实际的编程过程中,需要注意的一些问题:

         坐标参数化或者根据屏幕的宽度和高度生成坐标,从而提高界面的移植性。

         在程序运行过程中,paint方法经常被反复调用,所以一般在该方法中只放置绘制的代码,而把逻辑处理的代码放在别的位置。

         在进行低级事件处理代码编写中,对于游戏按键,尽量使用游戏动作进行编程,其他按键才直接使用键值,从而提高事件处理代码的移植性。

         因为hideNotify和showNotify方法会在界面隐藏和重新显示时,被系统自动调用,所以可以覆盖这两个方法,在其中实现暂停的逻辑。

         尽量使用双缓冲技术,避免屏幕的闪烁,除非手机不支持双缓冲。

         显示其他界面的时候,注意要关闭线程,并释放资源。

在Canvas里面永远没有Form里面那些append啊,addxxxx啊之类的方法,因为那样你就不自由了,所以JAVA不会去做一些束缚你的事情,感谢上苍吧!

三.J2ME Canvas 开发小试牛刀:

1.实现Loading效果(进度加载):

要实现Loading效果,你必须要做的一件事情就是使用多线程!这样用起来比较爽。

….

//先画一个小矩形,圆角不圆角你说了算

g.fillRect(10,10,80,20); // 画了一个宽80,高20的矩形,做进度条很不错哦

new Thread(new Runnable(){

public vodi run () {

g.fillRect(10+delta,10,20,20); //画一个X坐标值为动态的小矩形在上面那个大矩形中,你的loading效果出来怎么样就完全看你的动态X和小矩形的宽度如何设定了

}

}).start();

….

2.实现一个Canvas表单(输入框,按钮,图像):

这里就可以涉及到事件响应了,Canvas给我们提供了keyPressed(int key)来响应用户的按键 。

protected void paint(){

        g.drawRect(20,20,80,30);

}

protected void keyPressed(int key){

    int action = getGameAction(key);   

        switch(action){

            case Canvas.FIRE : EventHandle.doInput(); break ;   

        }

        repaint();

    }

上面这段代码展示了一个如何去实现一个输入事件的响应,也就是当用户按下通常的OK键的时候会去做输入这件事情,至于怎么做就看你的了,不过一般情况就是去打开一个TextBox完成输入之后再把用户的输入绘制到矩形里面。

3.锚点:

在画布中锚点实际上就是坐标原点,取值有类似于这些:

【 Graphics.Top|Graphics.LEFT 】

【 Graphics.Top|Graphics.RIGHT 】

【 Graphics.BOTTOM|Graphics.LEFT 】

【 Graphics.BOTTOM|Graphics.RIGHT 】

【 Graphics.VCENTER|Graphics.HCENTER 】

【 Graphics.HCENTER|Graphics.TOP 】

【 Graphics.HCENTER|Graphics.BOTTOM 】

【 Graphics.VCENTER|Graphics.LEFT 】

【 Graphics.HCENTER|Graphics.RIGHT 】

根据意思你就会明白是哪里了,这些值必须成对使用,因为是用的逻辑运算符 “|” 所以,每一对值的次序也就不重要了。

4.如何去处理不同手机平台键值不一样的问题:

由于手机种类实在太多,你不可能完全了解,或者每一个程序都为每一种机型开发一个版本。那样是不现实的,也是效率低劣的。所以,我的做法是,让使用者来确定。哈哈,方法就是首次运行的时候让用户告诉我们每个键值是多少,然后记录下来就OK啦,哈哈,还不用移植。

5.[引用]关于J2ME中双缓冲技术:

双缓冲技术是编写J2ME游戏程序的关键技术之一。实际上,双缓冲技术是计算机动画的一项传统技术。造成屏幕闪烁的主要原因在于,画面在显示的同时程序又在改变它,于是画面闪烁。

解决办法是在内存中开辟一片区域作为后台画面,程序对它更新、修改,完成后再显示它。这样被显示的图像永远是已经完全画好的图像,程序修改的将不是正在被显示的图像。当然还有其他方法可以解决屏幕闪烁问题,但使用双缓冲技术是一种值得推荐的解决方案。

有些设备本身就支持双缓冲,每次都是先把屏幕重画在缓冲之中,然后再绘制在显示屏幕上,而不是直接绘制在显示屏幕上。可以使用Canvas类的isDoubleBuffer方法判断设备是否具有双缓冲。

可变图像可以很容易地用作屏幕外缓冲。改写前面绘制不变图像的代码,将所有的绘制都放在可变图像中,然后一次性地将可变图像绘制到屏幕上去。

package doublebufferdemo;

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

import java.io.*;

public class ImageCanvas extends Canvas

{

   private Image buffer;                        //可变图像,作为绘制缓冲

   private Image image;                          //不变图像,用来加载图片文件

   public ImageCanvas()

   {

      try

      {

        image = Image.createImage("/tree.png"); //加载图片文件

      }catch(java.io.IOException e)

      {

        System.out.println(e.getMessage());      //处理I/O异常

      }

      buffer = Image.createImage(this.getWidth(), this.getHeight());

                                                //用一个可变图像作为绘制缓冲

      Graphics bg = buffer.getGraphics();        //获取缓冲的Graphics对象

      bg.setColor(0xFFFFFF);

      bg.fillRect(0, 0, getWidth(), getHeight());    //填充整个屏幕

      bg.drawImage(image,this.getWidth()/2,this.getHeight()/2,    <a href="http://www.sunjianyes.cn/Article/tag/graphics">Graphics</a>.VCENTER|Graphics.HCENTER);

   }

   public void paint(Graphics g)

   {

      g.drawImage(buffer,0,0,g.TOP|g.LEFT);      //将缓冲区上的内容绘制到屏幕上

   }

}

编译、运行程序,其结果和前面完全相同,但是却采用了双缓冲技术。对于双缓冲的使用,可以总结出以下几点。

* 定义一个Graphics对象bg和一个Image对象buffer,按屏幕大小建立一个缓冲对象赋给buffer,然后取得buffer的 Graphics对象赋给bg。在这里,Graphics对象可以理解为缓冲的屏幕,Image对象则可当成缓冲屏幕上的图片。

* 在bg(缓冲屏幕)上用drawImage()和drawString()等语句画图,相当于在缓冲屏幕上画图。

* 调用repaint()语句,它的功能是告知系统调用paint()来完成真实屏幕的显示。这里需要注意的是,paint()是一个系统调用语句,不能手工调用,只能通过paint()语句来调用。

* 在paint(Graphics g)函数里,将buffer(缓冲屏幕上的图片)画到真实屏幕上。

以上的步骤虽然看似繁琐,但是本身在不支持双缓冲机制的时候是必须的,回过头来看效果还是很不错的。如果想在屏幕上显示什么东西,只要画在bg上,然后调用repaint()将其显示出来就可以了。

6.比较好的调用paint(Graphics g)的方式:

paint(Graphics g) {

init(g);

yourPainter_1(g);

yourPainter_(g);

}

init(Graphics g){

// ......

}

yourPainter_1(Graphics g){

// ......

}

yourPainter_2(Graphics g){

// ......

}

上面所示这种是我认为比较好的一种使用paint方法的办法,推荐下!

7.关于J2ME Graphics的画笔

g.setStrokeStyle(Graphics.DOTTED);

g.setStrokeStyle(Graphics.SOLID);

Graphics只有这两种画笔,一个视线一个点线,需要什么就是什么。

J2ME平台下的走迷宫小游戏开发实战 J2ME(Java 2 Platform, Micro Edition)是为移动设备和嵌入式设备特别设计的一个Java平台版本。它的设计目标是让Java应用可以在有限的硬件资源下运行,这使得J2ME成为了早期智能手机和功能手机游戏开发的重要平台。在本章中,我们将首先对J2ME平台进行整体介绍,包括它的架构、核心组件以及它与Java其他版本的关系。随后,我们会探讨J2ME在游戏开发领域的应用,以及它如何适应移动设备的特定需求。## 1.1 J2ME架构概览。 阅读详情

相关推荐

J2ME平台下的手机游戏开发实战:大富翁游戏源代码解析

J2ME(Java 2 Platform, Micro Edition)是为移动设备设计的Java平台版本。它允许开发者创建适用于各种手机和其他嵌入式设备的应用程序,特别是通过无线连接访问网络信息的应用程序。J2ME(Java 2 Platform, Micro Edition)为移动设备提供了一套GUI组件,允许开发者创建图形化的用户界面。在本节中,我们将介绍J2ME中GUI组件的分类,以及设计原则和用户体验的重要性。Canvas类是J2ME中用于自定义绘图的核心类。它允许开发者覆盖。

weixin_33431149的博客 1046

精通J2ME中的Hello World

       初学java的时候一般都写过如下的HelloWorld程序,今天我准备详细讲述一下J2ME中的HelloWorld。无论你是J2ME开发高手还是新手都应该读读这篇文章,我想它会对你有所帮助!      在javax.microedition.midlet包中定义了一个非常重要的类MIDlet,所有J2ME的应用程序都必须扩展这个类,只有这样才可以使得应用管理软件(Applicat

mingjava的专栏 2317

《第二十二篇》Cross-Attention:注意力机制详解-代码实现和公式详解《二》

本文详细介绍了Cross-Attention的原理、公式和实现。Cross-Attention用于Transformer解码器和Encoder-Decoder结构,通过查询向量(Q)与键、值向量(K、V)的交互实现序列对齐。核心公式为softmax(QK^T/√d_k)V,其中Q来自Decoder,K、V来自Encoder。文章还给出了多头注意力机制公式和PyTorch实现代码,包括投影计算、注意力分数计算和输出处理。代码示例展示了如何构建一个完整的Cross-Attention模块,并演示了其在解码器查询

guoguozgw的博客 2209

j2me学习心得

真正开始学习J2ME应该算是从暑假7月份开始。到现在屈指算来也不过是三个月的时间。现在我把中间的一些学习经历写出来,和大家一起分享学习j2me的一些经验和感悟。   在学习J2ME之前,一些认识和不认识的朋友不止一次地说J2ME是JAVA里最难的一块。因为你的代码是运行在有限的资源中,必须尽最大可能地被优化,所以你必须具有很高的编程素养。不过我还是要坚持学习J2ME,也许是出于我对手机游戏软件这一

hydrogen2005的专栏 1398

竞赛无人机模块化开发实战:2023 TI电赛G题空地协同消防系统(飞控与视觉融合篇)

本文以2023年TI电赛G题为例,详细阐述了采用模块化开发思维构建空地协同智能消防系统的实战方法。文章重点拆解了无人机飞控二次开发、视觉识别与融合控制等核心模块,提供了硬件选型、代码实现与系统联调的完整指南,旨在帮助参赛者通过“搭积木”式编程高效完成复杂系统集成。

js777的博客 454

iTunes登录协议全解析:从抓包到签名验证(含HTTPDebugger避坑指南)

本文深入解析了iTunes登录协议的核心流程,包括sign-sap-setup-cert和sign-sap-setup-buffer等关键请求,并提供了使用HTTPDebugger等工具进行抓包分析时绕过反调试检测的实战技巧与避坑指南。文章详细拆解了PLIST编解码、请求签名验证机制及密码加密逻辑,为网络安全研究和协议逆向提供了完整的技术路径。

weixin_29224309的博客 331

初学J2ME的时,看过的好文章(一)

J2ME程序开发全方位基础讲解汇总(1) J2ME中暂时无法完成的功能      列一些J2ME中暂时无法完成的功能,希望大家能积极补充:   1、在手机中不更改代码实现移植,主要指游戏。   2、动态修改按钮文字。   3、在Canvas上接受中文输入。   4、

冯小卫 842

Vue3 + OpenLayers 开发指南(一) - 环境搭建与基础配置

本文详细介绍了如何从零开始搭建Vue3与OpenLayers的集成开发环境。通过项目初始化、核心依赖安装、目录结构规划及基础配置,手把手引导开发者创建一个结构清晰、可维护的现代化WebGIS应用骨架,为后续添加地图图层和交互功能奠定坚实基础。

weixin_28049429的博客 339

JDK、J2EE、J2SE、J2ME的区别

1.JDK 是Javadevelopmenttoolkit,相当于是Java的库函数,是编译,运行java程序的工具包。 J2EE是Java2enterpriseedition是Java的一种企业版用于企业级的应用服务开发 J2SE是Java2standardedition是Java的标准版,用于标准的应用开发 J2ME是Java2MicroEdition是Java的微型版,常用于手机上的...

gaofengyan的博客 1864

AIGC游戏测试自动化:AI如何提升游戏QA效率

随着游戏产业的蓬勃发展,游戏的复杂度和规模不断增加,传统的游戏测试方式面临着巨大的挑战。本文章的目的在于深入探讨AIGC技术在游戏测试自动化中的应用,分析AI如何提升游戏QA的效率。范围涵盖了从核心概念到实际应用的各个方面,包括算法原理、数学模型、项目实战案例以及未来发展趋势等。本文将按照以下结构进行阐述:首先介绍核心概念与联系,明确AIGC和游戏测试自动化的相关概念和关系;接着讲解核心算法原理和具体操作步骤,通过Python代码进行详细说明;然后介绍数学模型和公式,并举例说明;

AI 原生应用开发的博客 1353

使用abagen工具箱获取基于脑区的基因表达矩阵

脑区模板定义了您感兴趣的脑区的空间位置。abagen提供了一些预定义的脑区模板,您可以选择使用,也可以使用自定义的脑区模板。它提供了一种简便的方式来获取基于脑区的基因表达矩阵。abagen需要使用Allen脑图谱数据来获取基因表达矩阵。您可以使用abagen内置的下载功能来获取这些数据。这就是使用abagen工具箱获取基于脑区的基因表达矩阵的详细步骤。通过按照上述步骤操作,您可以轻松获取并使用Allen脑图谱数据中的基因表达信息。一旦您加载了脑区模板,您可以使用abagen来获取基于脑区的基因表达矩阵。

web_bug407的博客 1326

J2ME移动开发,菜鸟指南(转)

要进行J2ME的开发,首先必须要建立开发的平台,而在开发的平台选择上,我来介绍3条路。 1:功能比较全的平台JBUILDER; 搭建这个平台,我们必需要的材料有:JBUILDER 7 或 JBUILDER 8 ,BORLAND ...

cuankuangzhong6373的博客 1114

电机瞬态分析基础(2):理想电机的基本假设和正方向规定

电机瞬态分析基础之理想电机假设条件和正方向规定

weixin_45670943的博客 1145

MVC模式在j2me项目中的应用(一)

MVC模式在j2me项目中的应用(一)作者:FavoYang       Email:favoyang@yahoo.com 欢迎交流Keywords:MVC j2me UI模式 内容提要:本文简要的介绍了MVC模式的思想,并分析了MVC模式的利弊,最后结合MIDP平台给出几种常见的MVC模式实践。相信此文对任何一个使用midp平台的商务程序开发者都或多或少的有所帮助。 版权声明:本文同时发表在ww

alikeboy的专栏 3177

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【J2me 2D 游戏开发系列】◣Himi游戏开发启蒙教程◢Java零基础学习J2me游戏开发全过程!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/j2me-2/774.html          ☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您!Himi从写博客的最早开始就是Android游戏开发相关的,其实那么很多童鞋也知道Himi是做Java-J2me/Kjava出身,所以不少童鞋

李华明Himi 5475

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

J2ME RMS的学习笔记 (转载)

RMS,全称Record Management System,是J2ME应用程序进行持久性存储的唯一途径。在手机应用中常常作为得分记录、游戏信息存储等的工具使用。通过两篇文章的学习,我大致掌握了RMS的开发。第一篇文章《RMS概念解析与使用指南》从一些Q&A中介绍了RMS所涉及的基本概念,然后结合数据库的概念介绍了javax.microedition.rms包里面的四个接口、一个类、五个异常(文中

ghfseawindy的专栏 3914

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

初学J2ME时,看过的好文章(四)

在J2ME的低级用户界面编程中,进行事件处理是经常使用到的技术之一,因为处理手机键盘上的按键事件是最常使用到的一种,所以就以此为中心,介绍一下实际使用过程中三种处理方式进行说明:   1、 覆盖keyPressed方法   在继承了Canvas的界面中,如果需要进行按

冯小卫 690

初学J2ME时,看过的好文章(三)

因为在MIDP手机编程中,没有控制台的概念,所以所有的MIDP手机软件都必须有自己的界面,下面就熟悉一下MIDP的界面类体系。 首先说明的是,MIDP的标准界面类都位于javax.microedition.lcdui包中,使用时一定要记得引入。 在界面体系中,所以可以直接显示的界面类都继承自同一个父类——Displayable。根据是否能直接操作屏幕,以及是否和屏幕尺寸相关,MIDP的界面类分...

peizhiinfo 82
上一篇: 初学J2ME的时,看过的好文章(一)
下一篇: 初学J2ME时,看过的好文章(三)
coding_or_coded
博客等级 码龄16年 216粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值