在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>基于Java反射機制及控制反轉的GUI框架設計方案解析

基于Java反射機制及控制反轉的GUI框架設計方案解析

2017-10-25 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

Java是目前最優秀的軟件開發語言之一,由于其結構簡單、面向對象、跨平臺等優越特性使它具有極強的生存力,并得到了廣泛的應用。基于Java的圖形用戶界面(GUI)中,AWT是Java提供的用來建立和設置Java圖形用戶界面的第一代開發工具。AWT由java.awt包提供,其中包含了許多可以用來建立與平臺無關的GUI類。由于AWT組件占有系統資源較多,常把java.awt組件稱為重量級組件。Java Swing是Java Foundation Classes(JFC)的一部分,解決了AWT的很多缺點,相對于AWT,Swing是輕量級組件。Swing提供了許多比AWT更好的屏幕顯示元素,使用純Java寫成,與Java一樣可以跨平臺運行[1]。
  圖形用戶界面(GUI)借助于多種組件,包括菜單、按鈕、文本框、選擇框、列表框等,通過相應的事件處理機制,實現與用戶的動態交互。
  1 圖形用戶界面的建立
  1.1 創建GUI窗口
  javax.swing.JFrame類是用來建立用戶界面的底層窗口容器,能夠容納其他組件的對象,如標簽、按鈕、文本組件等。JFrame類提供的add()方法把不同的組件添加到容器中,通過容器類的setLayout()方法可以設定容器的布局,安排各種組件在容器中。
  使用JFrame類創建GUI窗口的基本步驟如下:用JFrame類或其子類創建一個對象即窗體;設置窗口的部分屬性,如標題、寬度、高度、可見性、圖標等;添加內容面板、組件;編寫事件處理方法;組件添加事件監聽。
  1.2 Java事件處理
  在Java中,程序與用戶的交互通過響應各種事件來實現。每當一個事件發生,Java虛擬機就會將事件的消息傳遞給程序,由程序中的事件處理方法對事件進行處理。Java通過委托型事件處理機制來解決對事件的響應。
  事件處理機制可表述如下[2]:事件源對象封裝了事件源、組件狀態等必要信息;當事件源對象發生改變時,向它所注冊的所有監聽器發出通知,各監聽器判斷事件類型是否為自己管轄范圍,若是,則通知給該監聽器的執行器,執行器從事件中獲取事件信息,并執行相應函數,改變組件的狀態。
  1.3 傳統創建窗口和事件處理的局限性
  在傳統的GUI創建過程中,存在一些局限性。
  (1)組件創建、添加都采用硬編碼方式,造成程序的過度耦合
  (2)如果窗體中有很多組件,組件要添加注冊監聽,則在代碼中看到很多重復注冊監聽的代碼,而這些注冊監聽的代碼都與界面本身設計無關,組件與事件之間的映射關系將會很混亂。
  (3)事件處理方法定義在別的類中,無法得到窗體及其組件的引用,只能得到事件源,而無法改變其他組件的狀態;或者把事件處理與窗體設計放在一起,這樣程序的可維護性又不好。
  (4)不利于代碼重用,基于MVC的思想,應該把事件處理方法分離出來;在需要修改事件處理代碼時,就無需修改界面本身的源代碼。
  2 圖形用戶界面設計的改進
  2.1 控制反轉(IOC)
  IOC就是控制反轉[3](Inversion of Control)的縮寫,也稱為依賴注入,控制反轉IOC是一種用于控制業務對象之間依賴關系的機制,將其設計的類與類之間的關系都交由外部容器進行管理,僅需調用類在容器中注冊的名字就可以得到類的實例,有效降低了業務對象之間的依賴程度,實現了業務對象之間的松散耦合。
  IOC的實際意義就是把組件之間的依賴關系(調用關系)反轉出來,對象之前的依賴關系用xml配置文件描述;這樣,各個組件之間就不存在硬編碼的關聯,任何組件都可以最大程度地得到重用。
  考慮如下接口和類的定義:
  public interface ICar{void operate();}
  public class Toyota implements ICar{…}
  public class Honda implements ICar{…}
  public class Driver{
  private ICar car;
  public void setCar(ICar car){this.car = car;}
  public ICar getCar(){return car;}
  public void drive(){car.operator();}
  }
  類Driver依賴于ICar,而類Toyota和Honda實現了接口ICar,即類Driver可以依賴于Toyota或Honda。
  運用了IOC模式后就不再需要自己管理組件之間的依賴關系,只需要聲明由xml配置文件描述去實現這種依賴關系,就好像把對組件之間的依賴關系的控制進行了倒置,不再由組件自己來建立這種依賴關系而是交給xml配置文件去管理。
  2.2 設計的改進
  在改進的GUI編程中,把窗體中組件的創建、組件的外觀設置和組件觸發事件時執行什么方法,不是以硬編碼的方式組合在一起,而是通過配置文件來配置。這樣開發人員無須關心組件的創建、組件的樣式設置、事件的監聽與實現,只需要設置相應的get、set方法來存取組件、屬性等,事件處理方法能在任意類中實現,方法名可以自定義,并且在其他類中能夠得到窗體對象及其組件的引用。當組件的樣式發生改變時,只需改動配置文件即可。
  該改進設計通過配置文件,并利用控制反轉和Java反射機制得以實現,這就需要有框架和良好的設計。
  3 框架運行機理
  框架中各組成部分在運行過程中的調用關系如圖1所示。
  基于Java反射機制及控制反轉的GUI框架設計方案解析
  當程序入口啟動時,框架解析bean-config.xml文件;組件工廠類根據xml配置文件創建各種組件對象;組件外觀設置類查找xml文件為每個組件設置相應的外觀;事件監聽器類查找xml文件為每個組件添加對應的事件監聽器;事件執行類查找xml文件為每個組件設置事件觸發時執行的方法;最后還需要一個保存窗體對象的類。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 成人看片免费无限观看视频| 性网站免费| 午夜视频播放| 午夜福利毛片| 天天干天天射天天舔| 久久久免费| 久操福利视频| 国产成在线人视频免费视频| ts国产| 午夜视频在线观看国产www| 手机看片1024精品日韩| 高清午夜线观看免费| semimi亚洲综合在线观看| 国产亚洲欧美日韩俺去了| 亚洲视频1| 黄免费视频| 天堂网a| 高hnp汁水bl总受软萌受| 4438x成人全国| 好爽好深太大了再快一点| 亚洲欧美精品成人久久91| 日韩一级免费毛片| 国内在线观看精品免费视频| 午夜性福| 99精品国产第一福利网站| 热re99久久精品国产99热| 婷婷五月情| 九九精品久久久久久噜噜| 夜夜夜夜夜操| 操爽视频| 久久在线播放| 日本三级特黄| ww.色| 91操碰| 91视频精品| 欧美黄色片在线观看| 一级特黄特色的免费大片视频| 夜夜想夜夜爽天天爱天天摸| 加勒比一本大道香蕉在线视频| 4455四色永久免费| 性做久久久久久久免费看|