日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java华丽转身 —— GUI编程宝典

發布時間:2025/3/15 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java华丽转身 —— GUI编程宝典 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?GUIGraphics User Interface,圖形用戶界面。GUI直觀的將計算機的功能呈現給用戶,圖形界面在視覺上更容易接受、更簡單直觀。

?

???? GUI需要操作系統和硬件的支持。因此,GUI編程往往要處理移植性問題。JavaGUI編程有相對比較好的可移植性。

?

? ? GUI的三要素:組件、容器、事件。

? ? ? ? ? ?組件,繼承了一定的功能模塊,提供了公用接口以便外部調用,具有良好的可重用性。

????????

? ? ? ? ? ?容器,在有些語言中也稱為窗體,容器也是一種特殊的組件,容器中可以放置其他組件,并且通過布局管理器管理容器中各組件的位置。

???????

? ? ? ? ??事件,每個組件都會觸發動作事件,java中不同的事件由不同的監聽器處理,組件是事件源,而某種監聽器主要用來監聽來自指定事件源產生的動作事件。

?

一、Swing組件

?

????JavaGUI功能主要集中在awtswing兩個包中。awtGUI底層包。swing包是高層的封裝,更容易移植。Swing包中有很多Swing組件。

?

????? Swing組件獨立于本地窗口系統

????? Swing組件除了AbstractButton類之外都以J開頭

????? Swing組件是基于AWT構建的

?????????????包含AWT可視化組件的替代組件,也包含復雜組件-樹和表,因此,提供了更豐富的組件類型

?



二、容器

?

?????????容器是一種特殊的組件,其它組件可以放置到容器中,并且通過布局管理器進行布局控制。

AWT提供的兩個主要的容器類:


? ? ?Window,可以獨立存在的頂級窗口

? ? ?Panel:可以作為容器容納其它組件,但不能獨立存在,必須被添加到其他容器中。

? ? ?其中,每一種容器都采用一種默認的布局管理方式。

?

布局管理


? ? Java的組件在容器中的具體位置是通過布局管理器LayoutManager實現的。

? ? 如下圖:

? ? FlowLayout是一種最簡單的布局管理器,主要思想是讓容器內的組件按照行優先的方式排列,一行排列到邊界后就折回到下一行繼續排列,以此類推。Panel默認使用此布局管理器。

?

??? BorderLayoutFrame的默認布局管理器。它把窗體分割成North,South,East,WestCenter五個區域,并且根據窗體的大小自動調整組件的大小。默認是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?
  • Publicclass?MyClass?implement?ActionListener{}??


  • ?

    ????No.2Another lineof code registers an instance of the event handler class as a listener on oneor more components. For example:

    ?

    [java]?view plaincopyprint?
  • someComponent.addActionListener(instanceOfMyClass);??


  • ?????????? No.3?The event handler class has code that implementsthe methods in the listener interface. For example:

    ?

    [java]?view plaincopyprint?
  • public?voidactionPerformed(ActionEvent?e)?{??
  • ???...//code?that?reacts?to?the?action...??
  • }??


  • ?

    ? ? 模型如下

    ? ?


    ? ? 事件監聽有四種實現方式:自身類作為事件監聽器;外部類作為事件監聽機制;匿名內部類作為事件監聽器;內部類作為事件監聽器。


    代碼:

    [java]?view plaincopyprint?
  • import?java.awt.*;??
  • import?java.awt.event.*;??
  • public?class?TestWindowClose{??
  • ????public?static?void?main(String[]?args){??
  • ???????new?MyFrame55("MyFrame");??
  • ????}??
  • }??
  • class?MyFrame55?extends?Frame{??
  • ?????MyFrame55(String?s){??
  • ????????super(s);??
  • ????????setLayout(null);??
  • ????????setBounds(300,300,400,300);??
  • ????????this.setBackground(new?Color(204,204,255));??
  • ????????setVisible(true);??
  • ??????????
  • ????????/*this.addWindowListener(new?MywindowMonitor());*/??
  • ??????????
  • ????????/*匿名內部類,出了括號沒人認識了,適用于方法邏輯簡單,語句比較少,而且不經常變動的類*/??
  • ????????this.addWindowListener(new?WindowAdapter(){??
  • ????????????public?void?windowClosing(WindowEvent?e){??
  • ???????????????setVisible(false);??
  • ???????????????System.exit(-1);???????????????????????????????????????????
  • ????????????}??
  • ????????});??
  • ?????}??
  • ?????/*內部類,只有這個類認識,出了這個類就不認識了*/??
  • ?????class?MywindowMonitor?extends?WindowAdapter{??
  • ?????????public?void?windowClosing(WindowEvent?e){??
  • ????????????setVisible(false);??
  • ????????????System.exit(0);??
  • ?????????}??
  • ?????}??
  • }??

  • 總結

    ?

    ?????????一個軟件是否為優秀的軟件,用戶界面的設計直觀重要。開發人員在進行GUI設計時,需要與軟件的用戶進行充分的溝通,確定用戶的需求和使用習慣,在實用性與美觀之間達到平衡。

    總結

    以上是生活随笔為你收集整理的Java华丽转身 —— GUI编程宝典的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。