j2me Canvas类详解

j2me小说(txt)阅读器源码       今天没什么事情,写了一个简单的小说阅读器,由于我的手机3230不支持jsr75,所以就把小说内容与代码放到了一起,如果大家想写一个支持读取本地文件的小说阅读器,那也很简单,用FileConnection读取即可。           这是全部代码,有什么问题可以一起探讨 第一,MIDlet类import javax.microedition.lcdui.Displa 阅读详情

3.1  游戏用户界面(Canvas)

Canvas类是低级用户界面的画布,所有的图形图像绘制和用户交互(包括按键、指针和Command)都由 这个类来负责。在此将详细讲述这个类的使用方法。

3.1.1  屏幕属性

Canvas类是实现低级API的Displayable类的子类,它提供了绘制方法以及应用程序所忽略的一 些低级事件的处理方法,由于Canvas类的paint方法被声明为抽象方法,所以Canvas类也是一个抽象类。应用程序如果要使用,则必须扩展 Canvas类。

在创建Canvas类的子类时,要求程序提供paint方法的实现。低级事件处理方法未声明为抽象方法,其默 认实现为空,也就是说可以什么都不做。因而,应用程序无须提供每个事件的处理方法,应用程序只需要重载其感兴趣的事件处理方法即可。

Canvas类的构造函数声明为protected,可以在子类的构造函数中调用super(),在实际应用 中,一般不用调用。所有需要处理低级事件以及需要在显示屏幕上完成图形绘制的类都必须按照下面的形式重写Canvas类:

class myCanvas extends Canvas

{

   …

   void paint(Graphics g)

   {

   }

   …

}

显示屏幕上能够实际用于绘制的区域因设备的不同而有所差异,因此具有较好移植性的应用程序一般不定好屏幕的尺 寸,而是通过调用getHeight()和getWidth()方法来获得具体尺寸。例如:

int width = getWidth();                   //获取屏幕的宽度属性

int height = getHeight();                 //获取屏幕的高度属性

文本框:图3-1 Canvas的画布及其坐标系统Canvas的坐标原点位于左上角,其最下角的 坐标为(即getWidth()和getHeight()返回的数值),屏幕的上部分为设备保留部分,用来向用户指示电量、信号强度、设备状态等,下面部 份用于MIDP实现设置或菜单,既可以是应用程序设置的Command软键,也可以是MIDP实现自动设置的菜单等软键,其位置由系统决定。

如果没有设置为全屏模式,即使没有设置任何软键,画布也无法占用这部分空间,如图3-1所示。

Canvas本身有两种状态,一种是普通默认情况下的状态,一种是全屏状态,可以用 setFullScreenMode()方法来对其设定。

两者之间的区别在于当使用全屏状态时,Title、Ticker以及Command都无法在屏幕上显示,而且 当调用setFullScreenMode()时,不管是什么模式,都会调用sizeChanged()这个方法,并传入屏幕的高度和宽度作为其参数。

可以使用setFullScreenMode(true)方法,然后观察Canvas的绘图区域是否发生改 变。

System.out.println(getHeight());         //输出非全屏高度

setFullScreenMode(true);                 //将Canvas画布设置为全屏幕属性

System.out.println(getHeight());         //输出全屏高度

编译、运行程序,控制台输出某个模拟器在设置Canvas全屏模式前后的高度分别为177和196。可见调用 setFullScreenMode方法后,屏幕的可绘制区域发生了改变。

调用setFullScreenMode(true)后,将触发sizeChanged事件,此事件从系统接 收两个参数,即为Canvas全屏后的width和height,通过这个事件可以获得新的宽、高。如果Canvas当前不可见,那么 sizeChanged会等到showNotify方法调用之前改变当前屏幕的大小参数。

protected void sizeChanged(int w, int h)

{

   width = w ;

   height = h ;

}

但要注意,setFullScreenMode和sizeChanged并不是同步的,如果调用了 setFullScreenMode(true)之后,立即使用屏幕宽度和高度,仍然有可能是非全屏模式的值。

此外有的设备调用setFullScreenMode(true)后,不会触发sizeChanged,而是 立即返回,因此通过getWidth和getHeight能够马上获得新的屏幕大小参数。

文本框:图3-2 功能菜单显示实际上Command的显示与否依赖于设备,有 的设备虽然使用了全屏模式,但仍然能看到Command,也就是说全屏模式未必有效。但是如果Command软键无法在屏幕上显示,而且已经为 Command设置相应功能,那么,按下对应的软键仍然会有相应的功能菜单,如图3-2所示。如何在Canvas中使用Command将在后面讨论。

3.1.2  屏幕绘制

paint(Graphics g)方法用来绘制屏幕,这个方法是一个抽象方法,应用程序必须实现这个方法才能绘制任何图形,如果没有实现这个方法应用程序将不被编译。paint方法被 传入一个Graphics对象g,g所设置的矩形区域定义了屏幕上可绘制的区域,也就是需要重绘的区域。

应用程序不一定要了解paint调用的底层实现,并在这个假定基础上只绘制画布区域中像素的部分。这样做的原 因在于paint方法的特殊性,它可能会被多个repaint方法调用,其中的一些可能来自程序之外,则应用程序只绘制它认为是必需的地方。

j2me <wbr>Canvas类详解注意

在paint方法调用返回后,其中的Graphics对象上的操作是未被定义的,因此应用程序不需 要将这个Graphics对象缓存起来,它只能在这个方法范围之内使用。

Graphics对象有如下属性。

n     绘制目标为显示屏幕,如果使用双缓冲,则其绘制目标是屏幕的后台缓冲。

n     剪裁区域应该包括画布上至少一个像素。

n     当前颜色是黑色。

n     当前字体为默认字体,可以通过Font.getDefaultFont()得到。

n     画笔风格为SOLID。

n     坐标系统的原点位于画布的左上角。

n     Canvas是可见的,调用isShow()应该返回true。

例如下面的代码使用Graphics对象将Canvas画布用单色进行填充。

public void paint(Graphics g)

{        

   g.setColor(0xFFFFFF);                  //将画笔颜色设置为白色

   g.fillRect(0,0,width,height);          //将屏幕填充为白色

}

3.1.3  绘制基本操作

Graphics类可以提供简单的2D几何绘图功能,它与J2SE中的java.awt.Graphics类 非常相似。Gaphics类提供的唯一一种绘图模式为像素替换,在这种模式下,目标像素将替换为用来绘图的Graphics对象所指定的当前像素值。

1.Graphics对象的获取

取得Graphics对象有两个方法,用paint方法传入参数,还可以用Image类的 getGraphics方法。两者区别在于paint方法得到的Graphics对象可以利用相关方法在屏幕上绘图,而利用getGraphics方法得 到的Graphics对象主要用于绘制后台缓冲。

2.Graphics的具体作用

Graphics类的作用就是在屏幕或者后台缓冲上绘制2D几何图形,这些图形主要包括以下3种。

n     文本:使用当前画笔颜色和设备所能支持的字体绘制指定的字符串或者字符。绘制文本时涉及颜色模型、字体类。

n     图像:可以从图像文件中绘制,也可以从缓存中绘制,图像分成可变图像和不变图像,在绘制过程中涉及到Image类。

n     简单的2D几何图形:这些简单的图形包括直线、矩形、弧、圆角矩形、三角形等。

文本框:图3-3 图形坐标系统3.坐标系统

画图时在图形相关方法中使用的坐标不代表像素本身,坐标是像素与像素之间空格所构成的坐标。图形的坐标系统 (也就是原点坐标(0,0))定位到绘图空间的左上角,x轴向右延伸,y轴向下延伸,如图3-3所示。

4.复制区域

在MIDP 2.0中还支持对整块区域的复制,可以调用copyArea方法来复制大块的区域。

public void copyArea(int x_src,int y_src,int width, int height,int x_dest, int y_dest, int anchor);

这个区域是用矩形(x_src, y_src, width, height)来确定的,(x_src, y_src)代表源区域的起始坐标,width和height分别代表区域的宽和高,区域的锚点放置在绘制目标的(x_dest, y_dest)上。

copyArea方法将源区域中的内容原封不动地复制到目标区域上,即使源区域和目标区域有重叠部分,这种复 制性的绘制也会完成。

3.1.4  绘制直线

在Graphics的坐标系统中,直线的表示方法是使用它的两个端点坐标表示L:(x1,y1,x2,y2), 实际上是连接坐标(x1,y1)和(x2,y2) 得到一个坐标的集合,然后连接每个坐标右下角的像素就能够得到这条直线。

例如直线(1,0,5,0)连接坐标(1,0)和(4,0)得到一个坐标集合 (1,0)、(2,0)、(3,0)、(4,0)、(5,0),那么这条直线就是由这4个坐标右下角的像素填充得到。

文本框:图3-4 坐标系统中的直线的表示直线(0,1,0,4)得到坐标集合: (0,1)、(0,2)、(0,3)、(0,4)。这条直线由这4个坐标右下角的4个像素表示。

直线(1,2,2,8)的表示不是特别明显,连接两点得到坐标集合(1,2)、(1,3)、(1,4)和 (2,5)、(2,6)、(2,7)、(2,8),这些像素的选取规则为:连接两个端点得到一条直线,取最靠近这条直线的坐标(坐标只能是整数),并且优 先选取右边、下边的坐标。

直线(6,2,6,2)起点和终点是一个点,则由这个像素本身来表示。这些直线在坐标中的表示如图3-4所 示。

绘制直线可以调用Graphics对象的drawLine方法,该方法有4个参数,分别输入x,y起 点坐标,x、y终点坐标。例如:

g.drawLine(2,2,5,5);                     //绘制线条

g.drawLine(1,2,2,8);                     //绘制线条

j2me <wbr>Canvas类详解注意

如果直线的绘制超出屏幕,则超出部分的像素将被忽略,因此在使用直线时要考虑屏幕的大小限制。

3.1.5  绘制弧形

Graphics对象也可以被用来绘制和填充弧形,例如圆和椭圆。弧形的表示方法为 Arc(x,y,w,h,startAngle,arcAngle),它们都由坐标系上的一个轮廓所限定。绘制方法为:

(1)以坐标(x,y)为起点,沿x轴正方向延伸w个 单位,沿y轴的正方向延伸h个单位,得到一个矩形,此虚拟矩形内切绘制一个椭圆(如果w和h相 等,则为圆)。

(2)以矩形的中心为圆心,以时钟3点的方向为0°,逆时针为正方向,从0°正方向旋转startAngle 度,和椭圆相交得到一条直线和一个交点。

(3)从这条直线开始,正方向旋转arcAngle度,得到另一条直线和交点,这样就得到了一个两交点之间的 圆弧。

文本框:图3-5 弧线的绘制(4)这个圆弧和两条直线得到一个封闭的区域, 弧线的绘制和填充就以这个封闭区域为基础。整个绘制过程如图3-5所示。

绘制弧线时,根据弧线得到一个与之最接近的坐标集合,然后填充这些坐标左下角的像素。填充弧时,只对在封闭区 域内的像素进行填充。

对于一个360°的弧线,它会覆盖一个宽为w+1,高为h+1的矩形, 而填充弧则覆盖一个宽为w,高为h的矩形,其中w和h都不为0。

如果w和h为0,则填充弧不会影响任何像素,而只要不全为0,绘制弧则 可能绘制一条直线。Graphics提供了两个方法来分别进行弧形的绘制和填充,例如:

g.setColor(0x000000);                      //设置画笔颜色为黑色

g.drawArc(5,5,120,60,0,360);               //绘制一个弧形

g.setColor(0x00FFFF);                      //设置画笔颜色为淡蓝色

g.fillArc(10,10,150,70,30,80);             //填充一个弧形

3.1.6  绘制圆角矩形

文本框:图3-6 圆角矩形的绘制Graphics也支持绘制和填充圆角矩形,圆 角矩形是矩形和弧的组合。圆角弧形的坐标表示方法为:RoundRect(x,y,w,h,arcWidth,arcHeight),它的矩形部分用 Rect(x,y,w,h)表示,弧形部分用 Arc(x,y,2*arcWidth,2*arcHeight,0,360)表示,然后由0°开始从圆心分割为90°的4个部分,分别和矩形4个角相 切,组合成一个圆角矩形。圆角矩形的绘制原理如图3-6所示。

Graphics提供了两个方法,分别来进行圆角矩形的绘制和填充,例如:

g.setColor(0x000000);                       //设置画笔颜色为黑色

g.drawRoundRect(30,40,120,120,20,10);       //绘制一个圆角矩形

g.setColor(0x00FF00);                       //设置画笔颜色为绿色

g.fillRoundRect(60,70,30,60,30,30);         //填充一个圆角矩形

3.1.7  绘制三角形

MIDP 2.0新增了一个方法用来填充一个三角形,该方法原型为:

fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3);

该方法的6个参数分别代表了三角形3个顶点的X、Y轴坐标。例如:

g.setColor(0x000000);                        //设置画笔颜色为黑色

g.fillTriangle(30, 40, 30, 100, 10, 0);      //填充一个三角形

3.1.8  绘制笔触的设置

绘制直线、圆弧、矩形和圆角矩形时可以选择使用SOLID或者DOTTED这两种画笔风格。Graphics 对象提供的画笔风格分为两类。

n     SOLID:值为0,表示当前画笔为1个像素宽的实线,填充紧靠指定坐标的右下端像素。

n     DOTTED:值为1,表示当前画笔为点线,打点频率和长度由MIDP实现决定,直线和弧线的终点不能保证被绘制,矩形的交点也无法保证被绘制。

setStrokeStyle方法用来设置画笔风格,getStrokeStyle方法用来获取当前的画笔风 格,可以使用Graphics对象在任何地方设置画笔风格,设置后会取代前面的设置,影响后续操作,直到再次改变其设置。例如:

g.setStrokeStyle(Graphics.DOTTED);              //将笔触风格设置为点线

g.drawLine(10,20,100,20);                       //绘制线条

g.drawLine(5,50,5,50);                          //绘制线条

j2me <wbr>Canvas类详解注意

画笔风格不影响填充、文本和图像的绘制操作。

3.1.9  双缓冲技术

双缓冲技术是编写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, Graphics.VCENTER|Graphics.HCENTER);

   }

   public void paint(Graphics g)

   {

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

   }

}

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

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

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

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

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

以上的步骤虽然看似繁琐,但是效果还是很不错的。如果想在屏幕上显示什么东西,只要画在bg上,然后调用 repaint()将其显示出来就可以了。

 

http://blog.sina.com.cn/s/blog_5e5a7c520100mtku.html

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

相关推荐

数字孪生变电站如何制作?虚拟现实项目强荐广州华锐互动

变电站数字孪生系统可以为提高变电站设备与环境的实时感知能力、在线诊断设备健康状态、促进设备隐藏故障定位和维修效率的提高、实现设备全生命周期提供有力支撑。通过对设备状态的准确评估,可以延长设备的生命周期,实现资产增值。1、3D可视化:建立可视化平台,集中展示所有3D模型信息、数据信息、环境信息和人员信息,包括设备数字模型、建筑外形及内部、周边地形、人员动态、天气、时间等。4、智能监控:采用先进的AI摄像头,通过设备的图像识别,自动智能分析图像,准确分析设备状态、运行动态、外围控制情况。...

gzvrnew的博客 775

canvas绘图_erciyuanfulitu

<canvas id='mcvs' width=300 height=300></canvas> <img id='img' src="https://img5.51tietu.net/pic/2019-080802/xr0s03fp520xr0s03fp520.jpg" alt="20160418_193134_007" width="777" height="808" /> <script> img.onload=function(){ img.widt

weixin_56072688的博客 1万+

MAX31865三线PT100测温实战:配置、接线与代码全解析

本文详细解析MAX31865三线PT100测温的配置、接线与代码实现。通过实战经验分享,介绍如何利用MAX31865芯片实现高精度温度测量,重点讲解三线制接法的自动误差补偿功能,并提供完整的寄存器配置、SPI通信和温度转换算法,帮助开发者快速解决工业测温中的常见问题。

ss78901的博客 757

关于J2ME Canvas类

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

pisota的专栏 2490

【TI毫米波雷达】IWR6843AOPEVM-G与DCA1000EVM实战:从硬件连接到数据流解析

本文详细解析了TI毫米波雷达开发套件IWR6843AOPEVM-G与DCA1000EVM的硬件连接、模式配置及数据流处理全流程。针对官方手册中的常见配置错误,提供了避坑指南和实测验证的正确设置方法,包括开关配置、网络参数等关键步骤。通过mmWave Studio软件配置雷达参数,并深入解析数据采集与处理流程,帮助开发者高效实现毫米波雷达应用开发。

weixin_30653023的博客 368

ADS1220 STM32硬件SPI驱动程序

前一段时间温故了下标准库,使用的是F1系列芯片,测试程序。

随风飘零翼的博客 5770

转载:j2me Canvas类详解

3.1  游戏用户界面(Canvas) Canvas类是低级用户界面的画布,所有的图形图像绘制和用户交互(包括按键、指针和Command)都由 这个类来负责。在此将详细讲述这个类的使用方法。 3.1.1  屏幕属性 Canvas类是实现低级API的Displayable类的子类,它提供了绘制方法以及应用程序所忽略的一 些低级事件的处理方法,由于Canvas类的paint方法被声明为抽象方法,

Go for it! 779

Oracle19c时区升级实战:从32到42版本的数据泵TSTZ报错解决方案

本文详细介绍了Oracle19c时区版本从32升级到42的实战步骤,重点解决数据泵TSTZ报错问题。通过检查时区版本、下载补丁包、应用补丁及执行升级脚本等关键操作,确保数据库时区数据更新,避免夏令时转换错误和历史时区规则不匹配等问题。文章还提供了常见问题排查和升级后的注意事项,帮助DBA高效完成时区升级任务。

n7o8p的博客 284

实例论证J2ME的事件传输机制

作者:mingjava   文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=119本文主要阐述的问题是,在J2ME开发中事件的传输到底是什么机制。主要围绕Canvas类事件传输的串行化进行分析和研究,通过实例进行论证并在最后得出结论。    通过参考Java doc我们可以知道在J2ME中的事件传输是串行化的,那么什么是串

mobilechannel的专栏 726

详解Σ-Δ型ADC拓扑结构的基本原理

现在,总环路滤波器的H(f)具有更大的滚降,Mod 2型的噪声传递函数具有40 dB/十倍频程的上升速率。同样,当正弦波输入为负满量程时,+1和–1之间的转换会减少,输出以–1为主。噪声传递函数是一个高通滤波器函数,提供噪声整形,在DC附近的较低频率,对量化噪声有很强的抑制。H(f)是环路滤波器的函数,定义噪声和信号的传递函数。Σ-Δ型ADC的噪底由热噪声决定,而不受量化噪声的限制。量化噪声为量化器的输入与输出之差。图5. Mod 1 Σ-Δ环路的线性模型(b),包括方程、滤波器、信号和噪声传递函数图。

qq_43416206的博客 1810

R语言孟德尔随机化环境搭建:手把手教你搞定gwasvcf、gwasglue等包的安装报错(附本地安装包)

本文详细介绍了R语言中孟德尔随机化环境搭建的全流程,重点解决gwasvcf、gwasglue等包的安装报错问题。从依赖关系解析到GitHub访问配置,再到离线安装方案,手把手教你搭建完整的分析环境,特别适合生物信息学新手快速上手。

weixin_29093017的博客 216

J2me低级UI界面中Canvas类与GameCanvas类

关于MIDlet类中destroyApp(参数)问题: 在destroyApp()方法中的参数为Boolean类型,destroyApp是一个callback,它是一个接口或者说一个协议。 当参数为false时,被调用MIDlet可以选择是否被关闭。如果选择被关闭,那么MIDlet就应该在destroyApp返回之前做好被关闭的准备,否则就抛出MIDletStateChange...

邪道少年 216

3.嵌入式控制器EC学习,源码框架(60/64端口)(一)

服务函数剖析 上一篇讲到while循环会一直查询十六个标志位是否满足要求,一旦其中某个标志位为1时,程序将会执行相应的服务函数,而执行服务函数是通过函数指针(service_table[ _R1 ])();来实现的。接下来我们分别来看看这十六个服务函数分别包含了哪些内容。 16个函数的函数名如下: const FUNCT_PTR_V_V code service_table[16] = { // Hi-Level Service Service_PCI, // Host 6

qq_30135687的博客 4160

J2ME游戏开发实例讲解

跳过J2ME,我们先来讲点游戏的理论.具体到华容道这个游戏,主要有三个方面,贴图.游戏操作.逻辑判断.这里讲讲贴图,其他两方面放在概要设计和详细设计里讲.所谓的贴图,其实就是画图,就是在要显示图形的位置上输出一副图片,(要是牵扯到动画就要麻烦一些,可以使用TimerTask.Thread或Rannable之类的技术),这副图片可以是事先准备好的也

冷枫@优快云 1792

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

midlet类,form类,canvas类,Graphics类

midlet类应该算是j2me程序的主类了,大概等同于vc中的mainFrame,用来对form或canvas的调度commandAction,与form类相对应得命令回调函数,重写它可以实现发生命令事件时候的动作。他的参数是Command类型,既为产生的命令form类可能属于一种比较简单的“视”类(姑且类比vc这么叫吧!)form.append方法可以向视中追加一行字符串,参数就是待追加的字符串

边陲小城 1449

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

在J2ME中实现全屏幕显示Canvas的方式

在J2ME中实现全屏幕显示Canvas的方式作者:陈跃峰出自:http://blog.youkuaiyun.com/mailbomb       在低级用户界面编程时,经常需要让Canvas填充满整个屏幕,实现的方式有如下两种:•          在Nokia系列的手机中,可以通过继承com.nokia.mid.ui.FullCanvas类实现全屏幕显示。 •          在MIDP2.0里面,可以使

爪哇米工作室陈跃峰的移动开发博客 3638

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

我的J2ME学习历程5

看完了一本书,写完一个Hello world,下一个任务就是晋级了,深入J2ME和MIDP的深层开发。对于编写游戏来说,我们要用到的就是canvas类了,而MIDP2.0提供了一个新的GameCanvas,使得我们底层的开发工作更加容易(详细请看具体资料)其实今天主要能做的就是给大家推荐一个网站 www.cnjm.com中国java手机网,这个网站集合了王森等名家的专栏文章,并且有自己的开发团队,

不厚道青蛙之焦油潭 1191

J2ME开发体会:连续按键处理的改善及滚屏

J2ME开发体会:连续按键处理的改善及滚屏 在J2ME中开发可交互的图形图像软件时,CANVAS类是必不可少的一个类,它提供了较丰富的图元函数和常用图形函数,而且内置了对用户按键的支持。 与MS的Visual Studio相比,封装的更好,编写代码直接了当,感觉更爽呵。 本文不讨论这个类中的绘图函数(已有无数强文作过论述),而是介绍CANVAS类按键处理开发中的一点体会。 1.CANV...

java开发指南博客 【转载】 190

J2ME-定时器(TimerTask)使用及初探

作者:zxhwolfe  文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=899最近完成个J2ME游戏,一直以来总想写点东西给大家~因为以前总是在索取,现在把J2ME的入门知识-定时器的相关知识以及我的一点体会-付出给大家,内容不多只是它的使用,希望对入门的J2ME开发者有所帮助。 首先,说下定时器的基本使用,以下内容摘自

mobilechannel的专栏 1150

实现游戏中的文字滚屏功能

文章来源:J2ME开发网在游戏开发的时候,我们可能会需要制作文字滚屏的效果。比如一行文字从屏幕下部滚动到屏幕的中间,在J2ME中我们可以借助Canvas类以及Timer类来完成类似的效果。    在J2ME的高级的图形用户界面API中并没有提供类似滚屏的效果,因此我们需要自己通过Canvas类来实现,我们应该在Canvas类的paint()的方法中绘制我们要滚动的文字,基本代码如下所示:    p

mobilechannel的专栏 1113

(转帖)J2ME Canvas资料

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

PigTeacher的专栏 1007

【J2ME】 Debug 笔记(二)

   网上有人给了我一个代码,很简单,出于初学,我看了又看,编译了一下,代码如下,错误如下:MyMIDlet .javapackage j2meprj;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class MyMIDlet extends MIDlet {  private static

【猩猩的专栏】 1695

在J2ME中实现游戏功能选择界面(附源代码)

在J2ME中实现游戏功能选择界面(附源代码)作者:陈跃峰出自:http://blog.youkuaiyun.com/mailbomb        在J2ME游戏中,显示了欢迎界面以后,就应该显示游戏的功能选择界面,实现该界面的方式主要有两种:1、  使用高级用户界面中的List来进行实现2、  使用Canvas类来自己绘制一个功能选择界面为了达到更强的游戏表现效果,经常在开发过程中使用第二种方式来实现游戏功...

java2000.net 310

J2ME游戏开发之低级用户界面(一)

 Canvas类       说到J2ME的低级用户界面,就不得不说一说Canvas类。  Canvas类是Displayable类的子类,它提供了绘制方法和应用程序的一些低级事件处理方法。例如键盘按键事件等,以及需要绘制屏幕的程序。由于Canvas类的paint()方法被声明为抽象方法,所以Canvas类也是一个抽象类。 绘制屏幕     Canvas类前面提到过可以看做一块画布,可以在上面绘制...

寄居蟹的博客 1117
上一篇: 一些很特别的J2ME开源项目
下一篇: J2ME平台手机游戏移植的体会【转】
JasonChan2008
博客等级 码龄18年 3粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值