欢迎界面一般可以通过以下两种方式,进入主画面
1)当用户按键,进入主画面
2)等待N秒自动进入主画面
等待n秒,这里也有两种方式:
1)让线程睡眠n秒,
2)定时器设定n秒,到n秒后去调度任务,进入主画面
技术:
1)使用Canvas制作欢迎画面
2)支持触摸屏处理
3)支持按键处理
4)定时器
5)线程
1、触摸屏事件
要让模拟器支持触摸屏,需要进行设置一下:
在WTK安装目录下,如,我的wtk安装在c盘,
路径应该是:c:\WTK22\wtklib\devices\DefaultColorPhone\DefaultColorPhone.properties
打开文件后,将touch_screen=false,改成true
MIDP2.0对于触摸屏方法有3个
1)pointerDragged(int x, int y) 触摸屏拖拽事件(暂时还没研究)
2)pointerPressed(int x, int y) 触摸屏按压
3)pointerReleased(int x, int y) 触摸屏释放
pointerPressed(int x, int y)当用户按下触摸屏的时候会自动调用这个方法x,y就是当前压下的坐标
2、按键事件
MIDP2.0对于触摸屏方法有3个:
1)keyPressed:按键按下
2)keyReleased:按键释放
3)keyRepeated:重复按键
3、定时器处理
定时器处理是指Timer与TimerTask,只有Timer 是没有用的,必须配合TimerTask 才有作用。在Timer定义了TimerTask 后,就会在指定的时间内执行TimerTask所定义的工作。
1)在Timer 的schedule()方法来设定特定时间或特定时间周期
2)在TimerTask的run()方法中定义任务
这样,在特定时间或特定时间周期,run()方法中的任务就会被执行
timer.schedule(new TimerTask() {
public void run() {
cancelWelcome();
}
}, displayTime);
主要代码如下,eclipse环境下调试通过:
1)定时器实现自动进入主画面
package test.mfcai;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class WelcomeCanvas extends Canvas {
private Display display;
private Displayable nextUI;
private Timer timer = new Timer();
private long displayTime = 3000;
public WelcomeCanvas(Display dis, Displayable disp) {
this.display = dis;
this.nextUI = disp;
}
protected void paint(Graphics arg0) {
int width = this.getWidth();
int height = this.getHeight();
Image displayImage = null;
try {
displayImage = Image.createImage("/logo20k.png");
} catch (IOException e) {
e.printStackTrace();
}
arg0.drawImage(displayImage, getWidth()/2, getHeight()/2, Graphics.HCENTER|Graphics.VCENTER);
}
public void setDisplayTime(long dispTime) {
this.displayTime = dispTime;
}
protected void keyPressed(int keyCode) {
cancelWelcome();
}
protected void pointerPressed(int y, int x) {
cancelWelcome();
}
private void cancelWelcome() {
timer.cancel();
display.setCurrent(nextUI);
}
protected void showNotify() {
timer.schedule(new TimerTask() {
public void run() {
cancelWelcome();
}
}, displayTime);
}
}
2)Thread方式实现自动进入主画面
package test.mfcai;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class WelcomeCanvas2 extends Canvas implements Runnable{
private Display display;
private Displayable nextUI;
private long displayTime = 3000;
public WelcomeCanvas2(Display dis, Displayable disp) {
this.display = dis;
this.nextUI = disp;
//启动线程
Thread thread = new Thread(this);
thread.start();
}
protected void paint(Graphics arg0) {
int width = this.getWidth();
int height = this.getHeight();
Image displayImage = null;
try {
displayImage = Image.createImage("/logo20k.png");
} catch (IOException e) {
e.printStackTrace();
}
arg0.drawImage(displayImage, getWidth()/2, getHeight()/2, Graphics.HCENTER|Graphics.VCENTER);
}
public void run(){
//等待3秒
try{
Thread.sleep(displayTime);
}catch(Exception e){
}
//显示需要显示的界面
display.setCurrent(nextUI);
}
public void setDisplayTime(long dispTime) {
this.displayTime = dispTime;
}
protected void keyPressed(int keyCode) {
cancelWelcome();
}
protected void pointerPressed(int y, int x) {
cancelWelcome();
}
private void cancelWelcome() {
display.setCurrent(nextUI);
}
}
本文欢迎转载,但请注明作者和出处
分享到:
相关推荐
它不仅节省了从零开始设计网站的时间,而且提供了丰富的功能和美观的界面,帮助企业更好地展示其应用程序开发能力和服务,吸引潜在客户。通过熟练掌握和运用HTML5模板,开发者可以更高效地构建出符合现代标准的高...
第12章“建立GUI应用程序”主要讲解如何使用Java的AWT(Abstract Window Toolkit)库来创建丰富的图形界面。AWT是Java最早提供的GUI库,它提供了一系列基础组件和事件处理机制。 首先,我们来看Component类。...
标题中的“通过WebSockets和HTML5 Canvas通过Web浏览器访问WPF应用程序”揭示了这个话题是关于使用现代网络技术来远程展示和交互WPF(Windows Presentation Foundation)应用程序。这是一个先进的技术融合,允许...
这个标题和描述提及的是一个基于Windows Presentation Foundation (WPF) 技术开发的用户界面美观的应用程序。WPF是.NET框架的一部分,由微软开发,专门用于构建桌面应用程序。它的主要优势在于提供了丰富的图形层、...
这个Demo将展示如何将Three.js的3D能力与Canvas的2D绘图能力相结合,创造出富有动态性和互动性的WebGL应用程序。 在实际开发中,你可能还会遇到如何处理用户输入、优化性能、处理碰撞检测等问题。Three.js提供了...
在IT行业中,J2ME(Java 2 Micro Edition)是一种...通过自定义Canvas和菜单,开发者可以创建出符合特定需求且用户体验良好的应用程序。在这个案例中,学习如何构建九宫图和菜单将有助于提升对J2ME图形界面编程的理解。
在前端,Vue.js被用来创建用户界面,它提供了一种声明式、组件化的开发方式,使得构建复杂的交互式应用变得简单。在这个项目中,Vue.js可能用于创建一个界面,用户可以通过该界面触发视频流的捕获和投屏操作。同时,...
Delphi是一款强大的Windows应用程序开发工具,以其高效的编译器和直观的可视化界面设计而受到广大程序员的青睐。本篇文章将深入探讨如何使用Delphi来仿制QQ2011的经典界面,通过这个项目,我们可以学习到Delphi界面...
为了确保企业开发者能够构建出一致、高效且易于维护的应用程序,本文档——"Microsoft PowerApps canvas说明文档"——提供了一套详细的编码标准和指南。 **目的** 这份技术白皮书旨在为微软PowerApps的企业制作者...
当您需要绘制一款应用程序的外观或显示怎样将程序的各个部分连接起来时,您就可以使用GUI Design Studio来实现,如: 将产品创意文档化 制作项目提案 需求记录 创建屏幕图样 为开发人员制作详细的规格 为现有...
Java移动通信程序设计(J2ME MIDP)范例主要涵盖了使用Java Micro Edition (J2ME)平台中的Mobile Information Device Profile (MIDP)进行应用程序开发的相关技术。J2ME是Java在嵌入式设备和移动设备上的应用版本,而...
2. **用户界面**:J2ME使用Canvas和Form组件构建用户界面,Canvas提供了自定义绘图的能力,而Form则用于展示文本和选择项。 3. **数据存储**:MIDP提供了Record Management System (RMS)来存储应用数据,类似于小型...
微信小程序是腾讯公司推出的一种轻量级的应用开发框架,可以在微信内无需下载安装即可使用的应用。开发者需要掌握WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)以及JavaScript来编写小程序。 2. 小程序...
例如,可能会找到用于创建图形用户界面(UI)的Canvas类实例,使用LWUIT(Lightweight User Interface Toolkit)或者MIDP的Form组件。同时,网络通信可能涉及了HttpConnection和Socket接口,用于发送HTTP请求或建立...
**WPF(Windows Presentation Foundation)**是微软推出的一种基于.NET Framework的用户界面框架,它为开发者提供了丰富的图形表现能力和强大的数据绑定机制,用于构建桌面应用程序。这个“wpf实例小程序”集合是专...
WPF(Windows Presentation Foundation)是一种基于 XML 的用户界面框架,用于构建 Windows 应用程序的用户界面。WinForm 是一种传统的 Windows 窗口应用程序开发技术。利用 WPF 建立自适应窗口大小布局的 WinForm ...
MIDlets运行在MIDP环境中,通过Display类来显示用户界面,使用Canvas类创建自定义图形,使用Form类创建表单界面,还可以利用Notification和Alert类来向用户发送通知。 **网络编程** J2ME提供了丰富的网络API,包括...
开发基于 Canvas.hs 的应用程序时,开发者需要注意以下关键点: 1. **事件处理**:Canvas.hs 提供的事件驱动模型使开发者可以定义各种用户交互事件,如鼠标点击、拖动等,这些事件会在浏览器中触发,并通过 ...