路是爬出來的

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿(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.javaeye.com/admin/show/28821

          看看這圖片:


          文章來源: http://wuhua.javaeye.com/blog/34541

          posted on 2006-12-30 08:42 路是爬出來的 閱讀(105) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 海晏县| 洱源县| 余姚市| 偏关县| 元阳县| 辽宁省| 丰城市| 云龙县| 全州县| 从江县| 拉萨市| 恩施市| 汉寿县| 乳山市| 兰考县| 闵行区| 清徐县| 酉阳| 盐源县| 利辛县| 连山| 灵川县| 明溪县| 四子王旗| 托里县| 黑水县| 常熟市| 巴塘县| 宝山区| 吴忠市| 临清市| 湟源县| 柳林县| 广德县| 彭泽县| 焦作市| 德州市| 新沂市| 报价| 那坡县| 万载县|