<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    路是爬出來的

    設(shè)計可組裝的j2me UI(四) 時間控件

           開放過項目的人都知道。用戶的需求是時刻變化的。我們要做到的只是不斷的去適應(yīng)這種變化。因為給錢的是人家。

           今天這篇文章讓我們來學(xué)習(xí)怎么樣設(shè)計一個可以在j2me低級UI上顯示的時鐘。經(jīng)過前面幾篇文章相信大家都知道我的UI設(shè)計思路了。我們現(xiàn)在要做的就是設(shè)計一個Part(這個是什么來的,呵呵。如果沒看過我前面文章的朋友們,建議你們先讀下,我想會有好處的。^_^)。

          我的控件思路是這樣的。首先在整個屏幕中拿出一小塊出來。然后在這一小塊里面繪制顯示時間(時間可以是純文字,也可以是圖片等),然后我們實現(xiàn)Runnable接口,讓它沒秒鐘都刷新一下那一小塊屏幕。是不是很簡單呢。呵呵。下面讓我們來看下具體代碼吧

    java 代碼


     


    1. /******************************************************************** 

    2.  * 

    3.  * 版權(quán)說明,此程序僅供學(xué)習(xí)參考。不能用于商業(yè) 

    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.     /** 用于執(zhí)行消失窗口 */  

    56.     protected TimerTask task;  

    57.      

    58.     /** 獲取系統(tǒng)時間 **/  

    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.      * 這里本不應(yīng)該與程序又任何關(guān)聯(lián)的???但考慮到?????? 

    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

    看看這圖片:

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 18亚洲男同志videos网站| 国产乱子伦精品免费女| 亚洲精品无码专区在线在线播放| 国产精品亚洲专一区二区三区| 人妻视频一区二区三区免费| 亚洲av日韩av综合| 在线视频观看免费视频18| 亚洲最大的黄色网| 午夜视频在线观看免费完整版| 亚洲日韩精品无码专区加勒比| 成人毛片手机版免费看| 色偷偷亚洲第一综合网| 免费A级毛片无码A| 免费国产在线视频| 亚洲AV无码久久寂寞少妇| 99久久久国产精品免费牛牛四川| 免费毛片在线视频| 青青视频免费在线| 丁香五月亚洲综合深深爱| 国内精品免费在线观看| 亚洲免费二区三区| 在线观看91精品国产不卡免费| 免费国产va在线观看| 久久亚洲精品视频| 亚洲一区在线免费观看| 亚洲av中文无码乱人伦在线观看| 亚洲精品视频在线观看你懂的| 97在线免费观看视频| 亚洲伊人久久大香线蕉啊| 精品国产一区二区三区免费看| 一级毛片正片免费视频手机看| 亚洲国产精品福利片在线观看| 日韩免费一区二区三区在线播放| 亚洲精品视频在线观看视频| 性色av免费观看| 中国在线观看免费的www| 亚洲欧洲一区二区| 本免费AV无码专区一区| 亚洲美女自拍视频| 亚洲A丁香五香天堂网| 美丽姑娘免费观看在线观看中文版 |