Java华丽转身 —— GUI编程宝典
?GUI,Graphics User Interface,圖形用戶界面。GUI直觀的將計算機的功能呈現給用戶,圖形界面在視覺上更容易接受、更簡單直觀。
?
???? GUI需要操作系統和硬件的支持。因此,GUI編程往往要處理移植性問題。Java的GUI編程有相對比較好的可移植性。
?
? ? GUI的三要素:組件、容器、事件。
? ? ? ? ? ?組件,繼承了一定的功能模塊,提供了公用接口以便外部調用,具有良好的可重用性。
????????
? ? ? ? ? ?容器,在有些語言中也稱為窗體,容器也是一種特殊的組件,容器中可以放置其他組件,并且通過布局管理器管理容器中各組件的位置。
???????
? ? ? ? ??事件,每個組件都會觸發動作事件,java中不同的事件由不同的監聽器處理,組件是事件源,而某種監聽器主要用來監聽來自指定事件源產生的動作事件。
?
一、Swing組件
?
????Java的GUI功能主要集中在awt和swing兩個包中。awt是GUI底層包。swing包是高層的封裝,更容易移植。Swing包中有很多Swing組件。
?
????? Swing組件獨立于本地窗口系統
????? Swing組件除了AbstractButton類之外都以J開頭
????? Swing組件是基于AWT構建的
?????????????包含AWT可視化組件的替代組件,也包含復雜組件-樹和表,因此,提供了更豐富的組件類型
?
二、容器
?
?????????容器是一種特殊的組件,其它組件可以放置到容器中,并且通過布局管理器進行布局控制。
AWT提供的兩個主要的容器類:
? ? ?Window,可以獨立存在的頂級窗口
? ? ?Panel:可以作為容器容納其它組件,但不能獨立存在,必須被添加到其他容器中。
? ? ?其中,每一種容器都采用一種默認的布局管理方式。
?
布局管理
? ? Java的組件在容器中的具體位置是通過布局管理器LayoutManager實現的。
? ? 如下圖:
? ? FlowLayout是一種最簡單的布局管理器,主要思想是讓容器內的組件按照行優先的方式排列,一行排列到邊界后就折回到下一行繼續排列,以此類推。Panel默認使用此布局管理器。
?
??? BorderLayout是Frame的默認布局管理器。它把窗體分割成North,South,East,West和Center五個區域,并且根據窗體的大小自動調整組件的大小。默認是Center區。
?
??? GridLayout將空間劃分成規則的矩形網格,每個單元格區域大小相等。組件被添加到每個單元格中,先從左到右填滿一行后換行,再從上到下。
?
????????布局管理器負責各個組件的大小和位置,用戶無法在這種情況下設置組件大小和位置屬性,如果用戶要自己設置則取消該布局管理器的方法為:setLayout(null)
?
?
三、事件
?
????????事件一般分為三種類型:鍵盤事件、鼠標事件以及組件的動作事件
????????事件處理過程中涉及到3個對象:事件源,事件和監聽器
? ? 事件的處理機制是一種委派式事件處理方式:普通組件將整個事件處理委托給特定的事件監聽器,當該事件源發生指定的事件時,就通知所委托的事件監聽器,由事件監聽器來處理這個事件。
?
?
???????實現監聽機制,需要有一下三個必要步驟:
?
?????No.1?In the declaration for the eventhandler class,one line of code specifies that the class either implements alistener interface or extends a class that implements a listener interface.Forexample:
?
[java]?view plaincopyprint?
?
????No.2Another lineof code registers an instance of the event handler class as a listener on oneor more components. For example:
?
[java]?view plaincopyprint?
?????????? No.3?The event handler class has code that implementsthe methods in the listener interface. For example:
?
[java]?view plaincopyprint?
?
? ? 模型如下
? ?
? ? 事件監聽有四種實現方式:自身類作為事件監聽器;外部類作為事件監聽機制;匿名內部類作為事件監聽器;內部類作為事件監聽器。
代碼:
[java]?view plaincopyprint?
總結
?
?????????一個軟件是否為優秀的軟件,用戶界面的設計直觀重要。開發人員在進行GUI設計時,需要與軟件的用戶進行充分的溝通,確定用戶的需求和使用習慣,在實用性與美觀之間達到平衡。
總結
以上是生活随笔為你收集整理的Java华丽转身 —— GUI编程宝典的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据平台不是救世主!做好数字化转型,得
- 下一篇: 32页,10米长的《BI建设地图》强在哪