一、下列程序完成一个简单的画直线功能,按下触笔后,移动并松开触笔画条直线。
二、
三、代码
MIDPCanvas.java
package test1;
import javax.microedition.lcdui.*;
public class MIDPCanvas extends Canvas implements CommandListener{
privateMidlet midlet;
privateCommand cmd_exit,cmd_clear;
intsx,sy,cx,cy,oldcx,oldcy;
booleanblisclear,blisrelease,blisfirstpaint;
publicMIDPCanvas(Midlet midlet ) {
try {
// Set up this canvas to listen to commandevents
blisclear=false;
blisrelease=false;
blisfirstpaint=true;
sx=0;
sy=0;
cx=0;
cy=0;
oldcx=0;
oldcy=0;
this.midlet=midlet;
cmd_exit=new Command("退出",Command.EXIT,1);
cmd_clear=newCommand("清除",Command.SCREEN,1);
addCommand(cmd_exit);
addCommand(cmd_clear);
setCommandListener(this);
} catch(Exception e) {
e.printStackTrace();
}
}
public voidpaint(Graphics g) {
if (blisclear||blisfirstpaint){
blisfirstpaint=blisclear=false;
g.setColor(0, 0, 0);
g.fillRect(0,0,getWidth(),getHeight());
}
else{
if (!blisrelease){
g.setColor(0, 0, 0);
g.drawLine(sx, sy, oldcx,oldcy);
}
g.setColor(0, 255, 0);
g.drawLine(sx, sy, cx, cy);
}
}
protected void keyPressed(int keyCode) {
}
protected void keyReleased(int keyCode) {
}
protected void keyRepeated(int keyCode) {
}
protected void pointerDragged(int x, int y){
oldcx=cx;
oldcy=cy;
cx=x;
cy=y;
repaint();
}
protected void pointerPressed(int x, int y){
blisrelease=false;
sx=x;
sy=y;
}
protected void pointerReleased(int x, int y){
blisrelease=true;
cx=x;
cy=y;
repaint();
}
public voidcommandAction(Command command, Displayable displayable) {
if (command==cmd_exit){
midlet.exitApp();
}
else if(command==cmd_clear){
blisclear=true;
repaint();
}
}
}
Midlet.java
package test1;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Midlet extends MIDlet {
privateDisplay display;
private MIDPCanvas midpcanvas;
publicMidlet(){
display=Display.getDisplay(this);
midpcanvas=newMIDPCanvas(this);
}
public voidstartApp() {
display.setCurrent(midpcanvas);
}
publicvoid pauseApp() {
}
public voidexitApp(){
destroyApp(true);
notifyDestroyed();
}
publicvoid destroyApp(boolean unconditional) {
}
}
分享到:
相关推荐
Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、PDA等。在这些设备上,由于资源有限,文件管理系统的设计和实现尤为重要。J2ME文件管理系统就是用于在这些设备上进行...
本文将详细解析J2ME中文API,特别是Canvas、Displayable和Alert这三个核心类的功能和使用方法。 首先,Canvas是J2ME中的一个关键类,它提供了直接在设备屏幕上进行图形绘制的能力。Canvas提供了以下几个主要方法: ...
在移动设备上开发应用程序,Java 2 Micro Edition (J2ME) 是一种广泛使用的平台,尤其在早期智能手机和平板电脑中。本项目是基于J2ME实现的一个手机时钟功能,它不仅显示时间,还允许用户更换背景,提高了用户体验。...
7. **错误处理和调试**:通过实践,初学者会遇到并学会解决一些常见的编程问题,如类型转换错误、空指针异常等,同时了解如何使用EclipseME的调试工具。 综上所述,这个“J2ME做的个人电话薄”项目涵盖了J2ME开发的...
- **图形用户界面 (GUI)**: 使用MIDP提供的用户界面组件,如`Canvas`类,来绘制时钟的数字或指针界面。开发者需要自定义绘图方法,如`paint()`,来渲染时间。 3. ** Jad 和 Jar 文件** - **Jad文件**: 它是J2ME...
J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于移动设备、嵌入式系统等资源受限的环境。它提供了一个开发和部署应用程序的框架,包括用户界面、网络、设备硬件访问等功能。J2ME时钟代码指的是在...
J2ME是一种专门用于嵌入式设备、移动设备(如早期的智能手机)和有限计算资源环境的Java平台。在这个场景下,"BUG"可能指的是编程错误、程序运行时异常或者性能问题。 在博客链接中(虽然该链接不可直接访问),博...
9. **J2ME虚拟机**:J2ME 使用的虚拟机是Card VM,它针对小型设备进行了优化。 10. **全屏模式**:在MIDP2.0中,设置手机为全屏模式的函数是`setFullScreenMode(true);` 11. **类路径**:Java类文件的路径应为包名...
J2ME主要用于开发移动设备和嵌入式系统的应用程序,因此理解和处理异常对于确保程序的稳定性和可靠性是必不可少的。在"exceptions-j2me.zip"这个压缩包中,包含了Java中一些常见异常的详细解释,这些异常对于Java...
- J2ME是Java 2的一个组成部分,面向嵌入式和移动设备,如手机和家电。它的出现旨在提供跨平台的编程能力,让开发者能为各种小型设备创建应用程序。 7. **J2ME与C/C++、J2SE的对比**: - J2ME强调面向对象编程,...
- **Optional Packages**:除了Configuration和Profile之外,J2ME还允许设备制造商和开发者根据需要添加额外的功能包。这些功能包可以提供更高级别的API和服务,以满足特殊应用场景的需求。 综上所述,J2ME为开发者...
与C++相比,Java不支持全局变量和GOTO语句,没有指针,而是使用引用,并且采用了垃圾回收机制,简化了内存管理。 5. **解读JVM**:Java虚拟机(JVM)是Java程序运行的基础,它为Java字节码提供了执行环境。JVM的跨...
在IT领域,J2ME(Java 2 Micro Edition)是一种专为嵌入式设备和移动设备设计的Java平台。这个平台允许开发者创建可以在各种不同设备上运行的应用程序,包括手机、PDA和智能家电等。在这个场景中,我们讨论的是一个...
在C++中,可以使用ODBC(Open Database Connectivity)或JDBC(Java Database Connectivity)进行数据库操作,而在J2ME中,可能需要使用特定的轻量级库如SQLite或者JSR-184(Mobile Information Device Profile - ...
J2ME(Java 2 Platform, Micro Edition)作为早期移动设备开发的主要平台之一,在资源极其有限的情况下进行高效的代码编写变得尤为重要。本文将详细介绍两种J2ME代码优化方案,并通过具体的案例分析来帮助开发者理解...
J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于开发移动设备、嵌入式系统等小型应用程序。在这个特定的【源码】J2ME时钟源码示例中,我们主要关注的是如何在J2ME环境下构建一个能够显示实时时间的...
在使用对象之前,务必确保已经正确地对其进行初始化,这是避免空指针异常的关键。 程序左侧出现黄色灯泡提示,表示某行代码可有可无,可能未被执行。这时,需要检查这行代码的功能是否被其他部分调用,确认其是否...