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

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

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

    sharky的點滴積累

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      56 隨筆 :: 104 文章 :: 10 評論 :: 0 Trackbacks
    日期是最基本的數據形式之一,因此很多語言或者數據庫都提供了對日期的支持,或內置或提供這一類的庫。Java也不例外;Java的應用編程接口提供了以跨平臺獨立語言的方式描述,計算,對比,顯示以及便攜式分析日期。在這篇文章里,我要講講關于Swing的自定義控制,允許你在視覺上獲取時間信息而不是用敲命令的方式。用這種方法,你可以避免無效的時間信息,讓你的使用者以視覺的方式得到享受。

      Java中的日期

      Java描述日期和時間的方法使用傳統的Date命令或者Java的一些子庫。不管它的名字是什么,日期的類并沒有普通意義上的日期的概念(日,月,年等等)技術上講,它僅僅是從1970年1月1日 00:00:00 GMT開始百萬分之一秒的累加的一個結果。盡管這些關于日期的類有各種各樣的處理日期的方法,這都是不夠的。

      為了方便的解決日期問題, JDK 1.1 介紹了一個抽象的類java.util.Calendar。具體的計算日期的子類都會根據日歷系統使用一個指向特定日期的指針。這是因為日歷系統歷來就是有很多種方法來計算自己的日期(比如陽歷,羅馬歷,陰歷)。

      Java應用編程接口提供了名為java.util.GregorianCalendar的類來根據陽歷系統處理日期信息。

      最終,名為java.text.DateFormat的類就是一種抽象的處理格式解釋日期種類的獨立于語言之外的方式。這種方式依靠那些慣例,法則,以及已知的語言要求的位置運行著。名為DateFormat的具體的子類進行實際的工作。例如,名為java.text.SimpleDateFormat的子類允許你根據現有的方式分析或者設定一個日期的格式。

      總體來說,這三個最基本的類(Date, Calendar, 以及 DateFormat)提供了強大的靈活的處理日期的體系。也許開始看來會有些疑惑,但你一旦明白了,你就會看到這樣的結構是十分有意義的,并且在其背后有很強的邏輯背景。(看看JDK的API文檔,你就會得到根多的文檔和例子)

      定做的日期控制

      盡管,Java提供了你可以對日期數據操作的方法,如果讓你處理三個不同的類,看起來也有些麻煩。有時你需要使用很多方法,利用很多實體來完成一個簡單的任務。除那些之外,Swing并不能提供進入日期的組件。當然,如果使用標準的控制如text box也不難完成。不過,日期在應用中是如此的常見,以至于我們常常一遍一遍地寫相同的代碼,輸入,分析,檢查時間。

      基于以上幾點原因考慮,我建立了一個簡單的自定義的控制,你可以使用它來訪問日期數據。基本上說,這就是一個顯示日期的標準的按鈕 (請看圖A)。

    圖 A

    自定義日期控制

      當你點擊之后,會彈出一個日期對話框,并允許你選擇一個新的日期 (請看表格B)。

      點擊OK鍵完成一次更新。

    圖 B


    日歷對話框彈出

      這樣做簡化了應用邏輯,因為使用者不會訪問到一個無效的日期。并且由于對話框看上去像一個日歷,這樣做更有利于使用者掌握星期幾這個非常有用的日期信息。

      自定義的按鍵控制在名為DateButton的類 (列表A)中描述。使用起來非常簡明—僅僅是列舉一個名為DateButton的實體,并且像加載普通的控制一樣把它加到一個方框中。

      按鍵就是表示的日期的實體,執行起來就像鍵入“date”命令的反映一樣。這就意外著只要名為PropertyChangeListener的時間寄存器發生變化你就可以設置并得到時間。表格 A說明了名為 DateButton 的應用編程接口,并且 列表B是一個使用的例子。

      表格 A

      自定義的按鍵應用編程接口是十分簡單的。你可以利用其中的一個構造器來建立一個例子,并且正確地獲取或設置時間信息。需要注意的是這是一個標準的按鍵,也因此它繼承了很多標準按鍵的方式,包括注冊的方式。
    方法
    描述
    DateButton(Date) 建立一個新的名為DateButton的類,用來初始化日期。
    DateButton( ) 建立一個新的名為DateButton的類,用來初始化系統日期。
    getDate( ) 得到正確的日期值。
    setDate(Date) 設置正確的日期值。

      自定義按鍵控制的應用編程接口

      日歷對話框

      除了自定義一個名為DateButton的控制器之外,我們還要建立一個自定義的對話框,名為CalendarChooser (參照 列表 C), 你可以自由地從列表中選擇月份,年份或日子 (參照表格B)。盡管它是根據名為Datebutton控制自動顯示的,你也可以用你自己的方法來使用它。建立一個名為 CalendarChooser的類,使用一個選好的方式來運行它(參照表格B完成應用編程接口)。

      表格 B

    使用日歷對話框選擇一個日期是非常簡單的。使用一個構件器來建造一個對話框的實體,使用其中的一種方法來選擇日期。
    方法
    描述
    DateChooser(Dialog, title) 建立一個新的名為DateChooser的類,并且賦予其標題和對話信息。
    DateChooser(Dialog) 建立一個新的名為DateChooser的類,并且賦予其對話信息。
    DateChooser(Frame, title) 建立一個新的名為DateChooser的類,并且賦予其框架和對話信息。
    DateChooser(Frame) 建立一個新的名為DateChooser的類,并且賦予其框架。
    select(Date) 顯示一個已選好日期的對話框,你可以任意改變日期;返回選擇好的日期。如果你取消對話框則返回一個空值,并關閉對話框。
    select( ) 與上述相同,用系統日期代替選擇的日期。

      日歷對話框應用編程接口

      這個名為DateChooser的類,有些復雜。我不得不對每個月的日歷建立一個新的控制器,因為這些標準控制里面沒有我需要的。另一方面講,這也說明了敬愛能力一個新的控制是多么地容易,靠鼠標和鍵盤地互動就能完成。

      注意到在年份選擇列表中年份的顯示,是由名為FIRST_YEAR和 LAST_YEAR的常數預先決定的。同樣地,其它常數也決定一些對話框視覺方面(如顏色)的效果。稍加設計,自由地修改這些參數并不困難。

      同樣地,非常重要的一點,名為DateChooser的類和名為DateButton的類都是以英式(月份和星期幾)或美式日期格式定義的。由于這些也是用常數來定義的,所以修改起來也十分簡單。如果你想修改的話,這也是完全和語言無關的。
    posted on 2005-09-24 14:36 sharky的點滴積累 閱讀(231) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 色窝窝亚洲AV网在线观看| 成人精品视频99在线观看免费| 亚洲乱码一二三四五六区| 亚洲Aⅴ在线无码播放毛片一线天| 成人免费ā片在线观看| 久久久久亚洲精品中文字幕| 2020年亚洲天天爽天天噜| 黄床大片免费30分钟国产精品| 亚洲成在人线aⅴ免费毛片| 亚洲精品少妇30p| 国产亚洲福利精品一区二区| 永久看日本大片免费35分钟| 怡红院亚洲怡红院首页| 精品久久久久久久久亚洲偷窥女厕| 性盈盈影院免费视频观看在线一区| 亚洲男人都懂得羞羞网站| jizz在线免费播放| 国产午夜鲁丝片AV无码免费| 亚洲一级免费视频| 2020因为爱你带字幕免费观看全集| 亚洲色av性色在线观无码| 国产一二三四区乱码免费| 亚洲AV日韩精品久久久久| 9久热这里只有精品免费| 亚洲av网址在线观看| 国产精品69白浆在线观看免费| 亚洲中文字幕乱码熟女在线| 麻豆高清免费国产一区| 亚洲真人无码永久在线观看| 国产一精品一aⅴ一免费| 成在人线av无码免费高潮喷水| 亚洲精品A在线观看| 猫咪免费观看人成网站在线| 国产免费69成人精品视频| WWW免费视频在线观看播放| 亚洲网站免费观看| 在免费jizzjizz在线播| 亚洲国产成人久久一区二区三区| 插B内射18免费视频| 亚洲国产精品无码观看久久| 亚洲成a人片在线观看无码专区|