`
deepfuture
  • 浏览: 4399379 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80062
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70024
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103330
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285712
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15005
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67538
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32129
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45975
社区版块
存档分类
最新评论

j2me-使用指针设备

UP 
阅读更多

一、下列程序完成一个简单的画直线功能,按下触笔后,移动并松开触笔画条直线。

二、

三、代码

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) {
}
}

分享到:
评论

相关推荐

    J2ME文件管理系统

    Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、PDA等。在这些设备上,由于资源有限,文件管理系统的设计和实现尤为重要。J2ME文件管理系统就是用于在这些设备上进行...

    J2ME中文API帮助文档

    本文将详细解析J2ME中文API,特别是Canvas、Displayable和Alert这三个核心类的功能和使用方法。 首先,Canvas是J2ME中的一个关键类,它提供了直接在设备屏幕上进行图形绘制的能力。Canvas提供了以下几个主要方法: ...

    j2me手机时钟 实现j2me的正弦计算

    在移动设备上开发应用程序,Java 2 Micro Edition (J2ME) 是一种广泛使用的平台,尤其在早期智能手机和平板电脑中。本项目是基于J2ME实现的一个手机时钟功能,它不仅显示时间,还允许用户更换背景,提高了用户体验。...

    J2ME做的个人电话薄

    7. **错误处理和调试**:通过实践,初学者会遇到并学会解决一些常见的编程问题,如类型转换错误、空指针异常等,同时了解如何使用EclipseME的调试工具。 综上所述,这个“J2ME做的个人电话薄”项目涵盖了J2ME开发的...

    J2ME时钟程序

    - **图形用户界面 (GUI)**: 使用MIDP提供的用户界面组件,如`Canvas`类,来绘制时钟的数字或指针界面。开发者需要自定义绘图方法,如`paint()`,来渲染时间。 3. ** Jad 和 Jar 文件** - **Jad文件**: 它是J2ME...

    J2ME时钟代码J2ME时钟代码

    J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于移动设备、嵌入式系统等资源受限的环境。它提供了一个开发和部署应用程序的框架,包括用户界面、网络、设备硬件访问等功能。J2ME时钟代码指的是在...

    j2me BUG

    J2ME是一种专门用于嵌入式设备、移动设备(如早期的智能手机)和有限计算资源环境的Java平台。在这个场景下,"BUG"可能指的是编程错误、程序运行时异常或者性能问题。 在博客链接中(虽然该链接不可直接访问),博...

    J2me阶段考试试题

    9. **J2ME虚拟机**:J2ME 使用的虚拟机是Card VM,它针对小型设备进行了优化。 10. **全屏模式**:在MIDP2.0中,设置手机为全屏模式的函数是`setFullScreenMode(true);` 11. **类路径**:Java类文件的路径应为包名...

    exceptions-j2me.zip_java programming

    J2ME主要用于开发移动设备和嵌入式系统的应用程序,因此理解和处理异常对于确保程序的稳定性和可靠性是必不可少的。在"exceptions-j2me.zip"这个压缩包中,包含了Java中一些常见异常的详细解释,这些异常对于Java...

    J2ME笔试 java

    - J2ME是Java 2的一个组成部分,面向嵌入式和移动设备,如手机和家电。它的出现旨在提供跨平台的编程能力,让开发者能为各种小型设备创建应用程序。 7. **J2ME与C/C++、J2SE的对比**: - J2ME强调面向对象编程,...

    基于J2ME的手机程序开发

    - **Optional Packages**:除了Configuration和Profile之外,J2ME还允许设备制造商和开发者根据需要添加额外的功能包。这些功能包可以提供更高级别的API和服务,以满足特殊应用场景的需求。 综上所述,J2ME为开发者...

    J2ME及其在手机领域的应用

    与C++相比,Java不支持全局变量和GOTO语句,没有指针,而是使用引用,并且采用了垃圾回收机制,简化了内存管理。 5. **解读JVM**:Java虚拟机(JVM)是Java程序运行的基础,它为Java字节码提供了执行环境。JVM的跨...

    J2ME电子时钟,机械时钟显示

    在IT领域,J2ME(Java 2 Micro Edition)是一种专为嵌入式设备和移动设备设计的Java平台。这个平台允许开发者创建可以在各种不同设备上运行的应用程序,包括手机、PDA和智能家电等。在这个场景中,我们讨论的是一个...

    c++654_j2me_C++_

    在C++中,可以使用ODBC(Open Database Connectivity)或JDBC(Java Database Connectivity)进行数据库操作,而在J2ME中,可能需要使用特定的轻量级库如SQLite或者JSR-184(Mobile Information Device Profile - ...

    J2ME代码优化的两种方案(2)

    J2ME(Java 2 Platform, Micro Edition)作为早期移动设备开发的主要平台之一,在资源极其有限的情况下进行高效的代码编写变得尤为重要。本文将详细介绍两种J2ME代码优化方案,并通过具体的案例分析来帮助开发者理解...

    【源码】J2ME时钟源码

    J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于开发移动设备、嵌入式系统等小型应用程序。在这个特定的【源码】J2ME时钟源码示例中,我们主要关注的是如何在J2ME环境下构建一个能够显示实时时间的...

    J2ME初学者常见问题解决手记

    在使用对象之前,务必确保已经正确地对其进行初始化,这是避免空指针异常的关键。 程序左侧出现黄色灯泡提示,表示某行代码可有可无,可能未被执行。这时,需要检查这行代码的功能是否被其他部分调用,确认其是否...

Global site tag (gtag.js) - Google Analytics