`
wuhua
  • 浏览: 2112248 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

设计可组装的j2me UI(四) 时间控件

阅读更多
       开放过项目的人都知道。用户的需求是时刻变化的。我们要做到的只是不断的去适应这种变化。因为给钱的是人家。
       今天这篇文章让我们来学习怎么样设计一个可以在j2me低级UI上显示的时钟。经过前面几篇文章相信大家都知道我的UI设计思路了。我们现在要做的就是设计一个Part(这个是什么来的,呵呵。如果没看过我前面文章的朋友们,建议你们先读下,我想会有好处的。^_^)。
      我的控件思路是这样的。首先在整个屏幕中拿出一小块出来。然后在这一小块里面绘制显示时间(时间可以是纯文字,也可以是图片等),然后我们实现Runnable接口,让它没秒钟都刷新一下那一小块屏幕。是不是很简单呢。呵呵。下面让我们来看下具体代码吧
java 代码
 
  1. /******************************************************************** 
  2.  * 
  3.  * 版权说明,此程序仅供学习参考。不能用于商业 
  4.  * 
  5.  ********************************************************************/  
  6. package org.pook.ui;  
  7.   
  8. import java.util.TimerTask;  
  9.   
  10. import javax.microedition.lcdui.Display;  
  11. import javax.microedition.lcdui.Displayable;  
  12. import javax.microedition.lcdui.Graphics;  
  13.   
  14. import org.pook.file.BookFileManager;  
  15. import org.pook.log.Log;  
  16. import org.pook.ui.core.Platform;  
  17. import org.pook.ui.form.Panel;  
  18. import org.pook.ui.timer.TimerTaskManager;  
  19. import org.pook.ui.util.GraphicsUtil;  
  20. import org.pook.util.DateTime;  
  21.   
  22. /** 
  23.  * 类名:TimerPart.java 
  24.  
  25.  * 编写日期: 2006-9-29 
  26.  
  27.  * 程序功能描述�? 
  28.  
  29.  * Demo: 
  30.  
  31.  * Bug: 
  32.  
  33.  * 
  34.  * 程序变更日期 
  35.  
  36.  * 变更作�?? 
  37.  
  38.  * 变更说明 
  39.  
  40.  * 
  41.  * @author wuhua 
  42. rrq12345@163.com 
  43.  */  
  44. public class TimerPart extends Part implements Runnable{  
  45.   
  46.     Log log = Log.getLog("TimerPart");  
  47.      
  48.     /** 时间显示字段     */  
  49.     private static int hour ;  
  50.     private static int minute;  
  51.     private static int second;  
  52.      
  53.     private static String time;  
  54.      
  55.     /** 用于执行消失窗口 */  
  56.     protected TimerTask task;  
  57.      
  58.     /** 获取系统时间 **/  
  59.     private DateTime dt;  
  60.      
  61.      
  62.      
  63.     private Display display;  
  64.     private Displayable displayable;  
  65.   
  66.     private String h;  
  67.   
  68.     private String m;  
  69.   
  70.     private String s;  
  71.      
  72.     public TimerPart(Display display) {  
  73.         super(Platform.WIDTH - 4504520);  
  74.         dt = new DateTime();  
  75.         hour = dt.hour ;  
  76.         minute = dt.minute ;  
  77.         second = dt.second ;  
  78.    
  79.          time = hour + ":" + minute + ":" + second;  
  80.            
  81.        
  82.         task = TimerTaskManager.getInstace().add(this1000);  
  83.         this.display = display;  
  84.     }  
  85.   
  86.     public void paint(Graphics g) {  
  87.         g.setColor(0x00000);  
  88.         g.drawString(time.toString(), view[X], view[Y], Graphics.TOP |  
  89.                 Graphics.LEFT);  
  90.     //    GraphicsUtil.darwString(g,new Boolean(BookFileManager.available()).toString(), view[X], view[Y]);  
  91.   
  92.     }  
  93.   
  94.     public void onClick(int keyCode) {  
  95.        
  96.     }  
  97.   
  98.     /** 
  99.      * 刷新时间的方法,每隔1秒钟刷新�?�? 
  100.      */  
  101.     public void run() {  
  102.            
  103.          
  104.         //更新时间  
  105.          updateTime();  
  106.          repaintTime();  
  107.          
  108.     }  
  109.      
  110.     /** 
  111.      * 这里本不应该与程序又任何关联的�?�但考虑到�?��?? 
  112.      * �?以就先这样先 
  113.      * 
  114.      */  
  115.     private void repaintTime() {  
  116.         if(display == null)  
  117.             return;  
  118.         displayable = display.getCurrent();  
  119.         if(displayable instanceof Panel){  
  120.             Panel panel = (Panel)displayable;  
  121.             panel.repaintTimer();  
  122.         }  
  123.     }  
  124.   
  125.     /** 
  126.      * 更新时间,频率是1�? 
  127.      * 
  128.      */  
  129.     private void updateTime() {  
  130.         second ++ ;  
  131.         if(second == 60){  
  132.             second = 0;  
  133.             minute ++ ;  
  134.         }  
  135.          
  136.         if(minute == 60){  
  137.             minute = 0;  
  138.             hour ++ ;  
  139.         }  
  140.          
  141.         if(hour == 24 && minute == 0){  
  142.             hour = 00;  
  143.         }  
  144.          
  145.         h =   hour<10?("0"+hour):hour + "" ;  
  146.         m =    minute<10?("0"+minute):minute + "";  
  147.         s =   second<10?("0"+second):second + "";  
  148.          
  149.         time = h + ":" + m + ":" + s;  
  150.     }  
  151.   
  152.   
  153.   
  154.   
  155. }  


具体的详细例子在: 手机电子书阅读软件基本框架  wuhua.iteye.com/admin/show/28821
看看这图片:
分享到:
评论
1 楼 wuhua 2006-11-16  
这个例子要考虑到手机的性能跟kvm的底层实现哦
因为你是采用1秒钟跳一次,但是这个跳,并非是跟实际时间来跳的。因为程序本身都损耗了一些时间,所以。。。
经过测试大概时钟走一天会慢一小时。呵呵。大家有什么好的解决办法。可以放开讨论

相关推荐

    J2me UI库类 基于低级界面

    基于低级界面的j2me UI库类,有demo和源码。高级界面的东西虽然好用但是在不同的手机上面显示得不一样,有的好看有的很丑,但是基于低级界面的就不一样了。在不同手机上显示出来都是一样的,这个UI库类是企业级的。...

    j2me的UI控件包

    Mewt 是一个专为J2ME设计的UI控件库,它提供了一系列轻量级、可自定义皮肤的UI组件,适应于各种不同屏幕尺寸的设备。Mewt 的设计目标是为开发者提供更加灵活、高效的界面设计工具,以便在资源有限的移动设备上创建出...

    J2ME高级UI总结

    在J2ME中,UI(用户界面)的设计和实现对于提供良好的用户体验至关重要。本文将深入探讨J2ME中的高级UI设计技巧、框架和实践。 一、触摸屏操作 在现代移动设备中,触摸屏已经成为主流的交互方式。在J2ME中处理触摸...

    MIE J2ME UI库 v1.0

    MIE J2ME UI库 v1.0 说明: MIE UI库(下简称MIE)是一个开源的手机(J2ME)GUI编程框架,与PC电脑上的AWT/Swing/SWT有相似的用处。 MIE提供了一套基本的UI组件,包括文本标签、文本框、文本域、按钮、单选框、复选框...

    J2me 轻量级UI控件-lwuit1.2.1

    **J2ME轻量级UI控件:LWUIT 1.2.1** Java Micro Edition(J2ME)是一种适用于小型设备和嵌入式系统的Java平台,它为开发移动应用提供了基础。在J2ME中,用户界面的构建通常是一项挑战,因为它需要在资源有限的设备...

    LWUIT j2me UI例子

    **标签“LWUIT j2me UI例子 制作漂亮的UI例子”** 强调了LWUIT在J2ME平台上的应用以及创建美观界面的重要性。这些标签可能关联着一个项目或教程,旨在帮助开发者学习和掌握LWUIT的UI设计技巧。 在**压缩包子文件的...

    j2me ui lwuit 1.3

    Lightweight User Interface Toolkit (LWUIT) 是一个专门针对 J2ME 平台设计的 UI 框架,它允许开发者创建丰富的、响应迅速且具有吸引力的图形用户界面。 LWUIT 1.3 版本是该框架的一个重要里程碑,它提供了许多...

    eswt j2me ui 教程

    **eSWT (Embedded Standard Widget Toolkit) 是一个专为J2ME(Java 2 Micro Edition)平台设计的用户界面框架,旨在提供更丰富、更接近原生应用的UI体验。** **eSWT 的出现主要源于以下几个原因:** 1. **作为...

    J2ME界面通用List控件

    该List控件是基于J2ME的画布Canvas开发的通用列表控件;该控件分为默认、数字、图标列表显示三种类型,,,,,列表样式可以通过相关属性来设置。该List控件需要提供MIDlet和一个Canvas。

    lwuit.rar_J2ME ui_LWUIT_j2me

    总的来说,LWUIT是J2ME开发中不可或缺的工具,它极大地提高了UI开发的效率和质量。通过熟练掌握LWUIT,开发者能够为Java ME平台创建出具备高级UI特性的移动应用,吸引更多的用户,并提升应用的整体品质。而文档中的...

    nokia s60 FP1 J2ME UI develop guide

    通过上述内容可以看出,《诺基亚 S60 FP1 J2ME UI 开发指南》为开发者提供了全面而深入的技术指导,有助于他们更好地理解和掌握 S60 平台上 J2ME 应用程序 UI 设计的关键要素,进而开发出既符合技术规范又满足用户...

    J2ME高级UI编程源码

    **J2ME高级UI编程源码详解** J2ME(Java 2 Micro Edition)是Java平台...通过深入研究"Example02"源码,开发者不仅可以学习到J2ME UI设计的基本原理,还能掌握高级UI编程技巧,从而提升自身在移动设备应用开发的能力。

    J2ME高级界面控件演示程序Eclipse

    总结,"J2ME高级界面控件演示程序Eclipse"是学习和实践J2ME界面开发的宝贵资源,通过实际操作,开发者可以掌握更多高级界面设计技巧,提升J2ME应用的用户体验。源代码的实践将巩固理论知识,是迈向专业J2ME开发者的...

    J2ME+UI框架LWUIT开发手册

    **J2ME+UI框架LWUIT开发手册** 在移动设备技术发展早期,Java 2 Micro Edition(J2ME)是开发嵌入式系统和...但LWUIT对于理解移动UI设计和交互仍有一定的参考价值,尤其是对于那些仍然需要维护J2ME应用的开发者来说。

    j2me最佳实践,UI设计

    ### J2ME最佳实践与UI设计关键知识点 #### 一、J2ME概述与MIDP版本 J2ME(Java 2 Micro Edition),由Sun Microsystems发布,是为小型设备和消费类电子产品设计的Java平台标准。其核心是MIDP(Mobile Information ...

    J2ME游戏课程设计

    **J2ME游戏课程设计详解** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专门用于开发在移动设备、嵌入式系统等资源有限的环境中运行的应用程序,其中包括游戏。J2ME游戏课程设计是学习移动游戏开发的重要...

    J2ME课程设计_贪吃蛇

    **J2ME课程设计——贪吃蛇** J2ME(Java Micro Edition)是Java平台的一个重要分支,主要用于嵌入式设备和移动设备的开发,如早期的智能手机和平板电脑。在J2ME平台上进行课程设计,可以让我们学习到Java语言的基础...

    j2me设计

    【标题】:J2ME设计 在移动设备的早期阶段,Java 2 Micro Edition(J2ME)是一种广泛使用的开发平台,用于创建能在小型设备上运行的应用程序,比如早期的智能手机和平板电脑。"J2ME公交车查询系统"是利用J2ME技术...

    J2ME课程设计样板

    课程设计的核心是开发一个个人通信录应用程序,该应用展示了J2ME在移动设备上的高级用户界面(UI)应用和数据持久化处理。 **设计目的:** 1. 学生将学习如何整合基础和专业知识,掌握设计过程和方法。 2. 理解程序...

    j2me ui开发包 lwuit.CHM文档

    lwuit开发文档,英文的,勉强看得下去,chem格式很受欢迎

Global site tag (gtag.js) - Google Analytics