`
hu1010
  • 浏览: 23802 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

j2me进度条Gauge模板

阅读更多

这是很好的进度条的模板,里面涉及丰富的Java知识,值得很好研究。如:单例模式,接口等知识。。。

package com.srk.gauge;
 
import javax.microedition.lcdui.Display;
 
/**
 *
 * 这是仿照Smart Ticket制作的进度条观察者,这个模型的优点是
 * 1,低耦合度。你可以通过Form,Canvas等来实现这个接口
 * 2,支持可中断的任务,因为背景线程是无法强制性中断的,
 * 所以就 没有了在观察者中回调背景线程相应方法的必要,
 * 如果支持可中断的话,可以让背景线程来查询观察者的isStopped()
 * 3,可以说进度条仅仅将自己绘画在屏幕上,他对后台线程毫不关心
 */
public interface ProgressObserver {
    /**
     * 将进度条复位
     */
    public void reset();
 
    /**
     * 将进度条设置最大
     */
    public void setMax();
 
    /*
     * 将自己绘制在屏幕上,如果进度条要开启自身的线程用于自动更新画面,
     * 也在这里构造并开启绘画线程(常用于动画滚动条)
     */
    public void show(Display display);
 
    /**
     * 滚动条退出命令,如果进度条曾经开启自身的线程用于自动更新画面,
     * (常用于动画滚动条),在这里关闭动画线程
     */
    public void exit();
 
    /**
     * 更新进度条
     */
    public void updateProgress(Object param1);
 
    public boolean isStoppable();
 
    public void setStoppable(boolean stoppable);
 
    public boolean isStopped();
 
    public void setStopped(boolean stopped);
 
    public void setTitle(String title);
 
    public void setPrompt(String prompt);
}
 
 
package com.srk.gauge;
 
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Gauge;
 
public class ProgressGaugeImpl implements ProgressObserver,
        CommandListener {
    private static final int GAUGE_MAX = 8;
    private static final int GAUGE_LEVELS = 4;
    private static ProgressGaugeImpl pgUI;
    private Form f;
    private Gauge gauge;
    private Command stopCMD;
    boolean stopped;
    boolean stoppable;
    int current;
    protected ProgressGaugeImpl() {
        f = new Form("");
        gauge = new Gauge("", false, GAUGE_MAX, 0);
        stopCMD = new Command("Cancel", Command.STOP, 10);
        f.append(gauge);
        f.setCommandListener(this);
    }
 
    public static ProgressGaugeImpl getInstance() {
        if (pgUI == null) {
            return new ProgressGaugeImpl();
        }
        return pgUI;
    }
 
    public void reset() {
        current = 0;
        gauge.setValue(0);
        stopped = false;
        setStoppable(false);
        setTitle("");
        setPrompt("");
    }
 
    public void updateProgress(Object param1) {
        //这里的参数设计为提示语
        current = (current + 1) % GAUGE_LEVELS;
        gauge.setValue(current * GAUGE_MAX / GAUGE_LEVELS);
        if (param1 != null && param1 instanceof String) {
            setPrompt((String) param1);
        }
    }
 
    public boolean isStoppable() {
        return stoppable;
    }
 
    public void setStoppable(boolean stoppable) {
        this.stoppable = stoppable;
        if (stoppable) {
            f.addCommand(stopCMD);
        } else {
            f.removeCommand(stopCMD);
        }
    }
 
    public boolean isStopped() {
        return stopped;
    }
 
    public void setStopped(boolean stopped) {
        this.stopped = stopped;
    }
 
    public void setTitle(String title) {
        f.setTitle(title);
    }
 
    public void setPrompt(String prompt) {
        gauge.setLabel(prompt);
    }
 
    public void commandAction(Command arg0, Displayable arg1) {
        if (arg0 == stopCMD) {
            if (isStoppable()) {
                stopped = true;
            } else {
                setPrompt("can't stop!");
            }
        }
    }
 
    public void show(Display display) {
        display.setCurrent(f);
    }
 
    public void exit() {
        // 忽略
    }
 
    public void setMax() {
        gauge.setValue(GAUGE_MAX);
    }
}

 

分享到:
评论

相关推荐

    j2me里面各种漂亮进度条的制作方法

    本文将深入探讨如何在J2ME中创建各种美观的进度条,并通过提供的文件名如"loading进度条.txt"、"进度条3.txt"、"进度条2.txt"、"进度条4.txt"来推测不同的实现方式。 首先,我们需要了解J2ME中的基本图形绘制API,...

    在J2ME上实现平滑的资源加载进度条

    ### 在J2ME上实现平滑的资源加载进度条 #### 概述 在Java 2 Micro Edition(简称J2ME)平台下开发应用程序时,经常会遇到需要展示资源加载进度的情况。良好的用户体验往往取决于是否能提供平滑且直观的加载进度...

    J2ME通用进度条,解决联网、线程操作等候问题

    "J2ME通用进度条"就是为了解决这个问题而设计的。 J2ME通用进度条是基于Java ME(J2ME)的图形用户界面(GUI)组件,用于显示任务执行的进度。它通常由两个主要部分组成:进度条本身(通常是一条横线,随着任务的...

    一些实用的j2me模板程序

    音乐的控制,rms的操作类,java字符串解析 将字符串解析成字符数组,java进度条实例模板,j2me中将对象转换成字节数组的方法,j2me联网测试,j2me多线程的应用实例,j2me Socket通信例子 客户端,服务器端

    J2ME 手机杀毒实例

    J2ME 手机杀毒模板 J2ME 手机杀毒模板 J2ME 手机杀毒模板

    j2me / java me 菜鸟级进度条 loading 初学者试用 高手回避

    有个朋友刚学j2me 问简单点的进度条怎么实现 就把这个发给他了 现在打包发出来给需要的初学者看 用途举例: 进入游戏界面之前先显示一下进度条 在loading的同时把需要的资源载入 初始化等等 eclipse写的 直接导入...

    J2ME开发 J2ME开发 J2ME开发

    J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如手机、智能电表、家庭自动化设备等。它提供了跨平台的开发环境,使得开发者可以编写一次代码,到处运行。J2ME由两大...

    用ant编译J2ME代码的build.xml模板

    本文将详细讲解如何利用Ant编译J2ME代码,以及如何使用提供的`build.xml`模板。 首先,我们要理解Ant的基本结构。一个`build.xml`文件是Ant的构建脚本,其中包含了多个目标(target)和任务(task)。每个目标由一...

    gaugeDemo_2.zip_gaugeDemo_2_j2me

    【标题】"gaugeDemo_2.zip_gaugeDemo_2_j2me" 是一个与Java Micro Edition(J2ME)相关的示例项目,主要展示了如何在J2ME平台上使用 Gauge 组件来创建和显示进度条。Gauge组件是J2ME用户界面(UI)中的一个重要元素...

    仙剑1.8寸屏模板——j2me

    《仙剑1.8寸屏模板——j2me》是一个专为1.8英寸屏幕设计的游戏模板,基于Java ME(J2ME)平台。Java ME,全称Java 2 Micro Edition,是Java技术的一个分支,主要用于移动设备、嵌入式设备和智能卡等资源有限的环境。...

    j2me_plane.rar_j2me_j2me 飞机_j2me 飞机 游戏_飞机游戏

    《J2ME飞机游戏开发详解》 J2ME(Java 2 Micro Edition)是Java平台的一个子集,专为移动设备、嵌入式系统等资源有限的环境设计。本篇文章将深入探讨如何利用J2ME技术开发一款简单的飞机游戏,以此帮助初学者理解...

    J2ME API 2.0 J2ME使用手册 J2ME帮助文档

    **J2ME API 2.0 - J2ME使用手册 - J2ME帮助文档** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专为资源有限的设备如移动电话、智能手表和家用电器等设计。J2ME API 2.0 提供了在这些小型设备上开发应用...

    j2me入门教程j2me入门教程j2me入门教程

    Java 2 Micro Edition (J2ME) 是一种Java平台,专为嵌入式设备和移动设备设计,如手机、智能手表、电视盒等。J2ME 提供了在小型设备上运行应用程序的能力,同时保持与Java标准版(J2SE)和企业版(J2EE)的兼容性。...

    J2ME游戏开发J2ME游戏开发

    **J2ME游戏开发** Java 2 Micro Edition (J2ME) 是一种Java平台,主要用于开发和部署在移动设备、嵌入式系统以及家用电器上的应用程序,尤其在早期的智能手机和功能手机上广泛用于游戏开发。J2ME以其轻量级、跨平台...

    J2ME中文版教程 J2ME教程

    **J2ME中文版教程——全面解读移动设备编程** J2ME(Java 2 Micro Edition)是Java平台的一个重要组成部分,专为嵌入式设备、移动电话和其他资源有限的设备设计。这个J2ME中文版教程是针对初学者和有一定经验的...

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏下,上为另一部分

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏

    J2ME小游戏J2ME小游戏J2ME小游戏上,下为另一部分

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏

    J2ME教材:J2ME&Gaming中文版

    **J2ME教材:J2ME&Gaming中文版** J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、智能手表等。这个“J2ME&Gaming中文版”教材主要针对的是Java在游戏开发领域的...

    j2ME_MP3播放器

    此外,进度条显示和音量控制也是常见的UI元素,需要对MIDP的高级UI组件有深入理解。 6. **线程管理**:音频播放通常在后台线程进行,以免阻塞主应用程序。这涉及到线程同步和通信,以确保用户界面的响应性和流畅性...

    j2me手机浏览器/j2me手机浏览器

    Java 2 Micro Edition (J2ME) 是一种Java平台,专为嵌入式设备和移动设备,特别是手机设计。在2000年代初期,J2ME是许多非智能手机上实现互联网浏览的主要技术,其中“j2me手机浏览器”就是这样一个应用。这个应用...

Global site tag (gtag.js) - Google Analytics