熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

用Java Swing作一個日歷控制程序

2013-11-23 19:31:43  來源: Java核心技術 

  日期是最基本的數據形式之一因此很多語言或者數據庫都提供了對日期的支持或內置或提供這一類的庫Java也不例外Java的應用編程接口提供了以跨平台獨立語言的方式描述計算對比顯示以及便攜式分析日期在這篇文章裡我要講講關於Swing的自定義控制允許你在視覺上獲取時間信息而不是用敲命令的方式用這種方法你可以避免無效的時間信息讓你的使用者以視覺的方式得到享受
  
  Java中的日期
  
  Java描述日期和時間的方法使用傳統的Date命令或者Java的一些子庫不管它的名字是什麼日期的類並沒有普通意義上的日期的概念(日年等等)技術上講它僅僅是從:: GMT開始百萬分之一秒的累加的一個結果盡管這些關於日期的類有各種各樣的處理日期的方法這都是不夠的
  
  為了方便的解決日期問題 JDK 介紹了一個抽象的類javautilCalendar具體的計算日期的子類都會根據日歷系統使用一個指向特定日期的指針這是因為日歷系統歷來就是有很多種方法來計算自己的日期(比如陽歷羅馬歷陰歷)
  
  Java應用編程接口提供了名為javautilGregorianCalendar的類來根據陽歷系統處理日期信息
  
  最終名為javatextDateFormat的類就是一種抽象的處理格式解釋日期種類的獨立於語言之外的方式這種方式依靠那些慣例法則以及已知的語言要求的位置運行著名為DateFormat的具體的子類進行實際的工作例如名為javatextSimpleDateFormat的子類允許你根據現有的方式分析或者設定一個日期的格式
  
  總體來說這三個最基本的類(Date Calendar 以及 DateFormat)提供了強大的靈活的處理日期的體系也許開始看來會有些疑惑但你一旦明白了你就會看到這樣的結構是十分有意義的並且在其背後有很強的邏輯背景(看看JDK的API文檔你就會得到根多的文檔和例子)
  
  定做的日期控制
  
  盡管Java提供了你可以對日期數據操作的方法如果讓你處理三個不同的類看起來也有些麻煩有時你需要使用很多方法利用很多實體來完成一個簡單的任務除那些之外Swing並不能提供進入日期的組件當然如果使用標准的控制如text box也不難完成不過日期在應用中是如此的常見以至於我們常常一遍一遍地寫相同的代碼輸入分析檢查時間
  
  基於以上幾點原因考慮我建立了一個簡單的自定義的控制你可以使用它來訪問日期數據基本上說這就是一個顯示日期的標准的按鈕 (請看圖A)
  
  
圖 A

  
 

  
  自定義日期控制
  
  當你點擊之後會彈出一個日期對話框並允許你選擇一個新的日期 (請看表格B)
  
  點擊OK鍵完成一次更新
  
圖 B

  
 

  
  日歷對話框彈出
  
  這樣做簡化了應用邏輯因為使用者不會訪問到一個無效的日期並且由於對話框看上去像一個日歷這樣做更有利於使用者掌握星期幾這個非常有用的日期信息
  
  自定義的按鍵控制在名為DateButton的類 (列表A)中描述使用起來非常簡明—僅僅是列舉一個名為DateButton的實體並且像加載普通的控制一樣把它加到一個方框中
  
  按鍵就是表示的日期的實體執行起來就像鍵入date命令的反映一樣這就意外著只要名為PropertyChangeListener的時間寄存器發生變化你就可以設置並得到時間表格 A說明了名為 DateButton 的應用編程接口並且 列表B是一個使用的例子
  
  表格 A
   
  
  自定義按鍵控制的應用編程接口
  
  日歷對話框
  
  除了自定義一個名為DateButton的控制器之外我們還要建立一個自定義的對話框名為CalendarChooser (參照 列表 C) 你可以自由地從列表中選擇月份年份或日子 (參照表格B)盡管它是根據名為Datebutton控制自動顯示的你也可以用你自己的方法來使用它建立一個名為 CalendarChooser的類使用一個選好的方式來運行它(參照表格B完成應用編程接口)
  
  表格 B
  
  
  
  日歷對話框應用編程接口
  
  這個名為DateChooser的類有些復雜我不得不對每個月的日歷建立一個新的控制器因為這些標准控制裡面沒有我需要的另一方面講這也說明了敬愛能力一個新的控制是多麼地容易靠鼠標和鍵盤地互動就能完成
  
  注意到在年份選擇列表中年份的顯示是由名為FIRST_YEAR和 LAST_YEAR的常數預先決定的同樣地其它常數也決定一些對話框視覺方面(如顏色)的效果稍加設計自由地修改這些參數並不困難
  
  同樣地非常重要的一點名為DateChooser的類和名為DateButton的類都是以英式(月份和星期幾)或美式日期格式定義的由於這些也是用常數來定義的所以修改起來也十分簡單如果你想修改的話這也是完全和語言無關的
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27033.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.