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

歡迎訪問 生活随笔!

生活随笔

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

java

《疯狂Java讲义》11

發布時間:2025/3/21 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《疯狂Java讲义》11 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.?Java?使用AWT和Swing類完成圖形用戶界面編程。其中AWT的全稱是抽象窗口工具集(Abstract Window Toolkit)。它是最早提供的GUI庫,這個GUI庫提供了一些基本的功能,但是很有局限性,所以后來又提供了Swing庫。

?

?2.?? 所有和AWT編程相關的類都放在java.awt包以及它的子包中,AWT編程中有兩個基類:Component和MuneComponent。Component代表一個能以圖形化方式顯示出來,并可與用戶交互的對象。例如Button代表一個按鈕。而MenuComponent顧名思義代表圖形界面的菜單組件,包括MenuBar

(菜單條)、MenuItem(菜單項)等子類。

?

3. ?在AWT圖形用戶界面編程里還有兩個重要的概念:Container和LayoutManager,其中Container是一種特殊的Compotent,它代表一種容器,可以盛裝普通的Compotent,而LayoutManager則是容器管理其它組件布局的方式。

?

4.?容器是Component的子類,因此容器對象本身也是一個組件,具有組件的所有性質,可以調用Component類的所有方法。Component類提供了如下幾個常用方法來設置組建的大小、位置和可見性等。

(1)setLocation(int x,int y):設置組建的位置;

(2)setSize(int width,int height ):設置組件的大小;

(3)setBounds(int x,int y,int width,int height):同時設置組件的位置、大小;

(4)setVisible(Boolean b):設置該組件的可見性;

?

5.?AWT主要提供了如下兩種主要的容器類型:

(1)Window:可獨立存在的頂級窗口;

(2)Panel:可作為容器容納其他組件,但不能獨立存在,必須被添加到其他容器中(如Window、Panel或者Applet等);

?

6. ?AWT容器的繼承關系圖如下所示:

?

常用的組件是Panel、ScrollPane、Frame和Dialog。

Frame的特點是:

1)Frame對象有標題,允許通過拖拉來改變窗口的位置和大小;

2)初始化時為不可見,可用setVisible(true)使其顯示出來;

3)默認使用BorderLayout作為其布局管理器。

舉個例子:

?

如果讀者嘗試過這個程序,就會發現這個小窗口點擊叉叉是關不掉的,這是因為還沒有為該窗口編寫任何事件響應,如果想關閉該窗口,可以通過關閉運行程序的命令行窗口來關閉該窗口。

?

7. ?Panel是AWT中另一個典型的容器,它代表不能獨立存在、必須放在其他容器中。Panel外在表現為一個矩形區域,該區域內可以盛裝其他組件。Panel存在的意義就是為其他組件提供空間。

Panel容器具有以下幾個特點:

(1)可作為容器盛裝其他組件,為放置組件提供空間;

(2)不能單獨存在,必須放到其他容器中;

(3)默認使用FlowLayout為布局管理器。

舉個栗子:

?

?

8.?ScrollPane是一個帶滾動條的容器,它也不能獨立存在,特點是:

(1)可作為容器來盛裝其他組件,當組件占用空間過大時,自動產生滾動條,也可以通過指定特定的構造器參數來指定默認具有滾動條。

(2)不能單獨存在,必須放到其他容器中;

(3)默認使用BorderLayout作為其布局管理器。通常不允許改變ScrollPane的布局管理器。

舉個栗子:

看到結果我們感覺有點奇怪,代碼中設置的文本框沒有顯現出來,為什么呢?

這是因為ScrollPane使用BorderLayout布局管理器的緣故,它導致容器中只有一個被顯現出來。具體情況我們后面介紹。

?

9.?布局管理器

????為什么使用布局管理器?實現平臺的遷移性,就是說“ Write Once,Run Anywhere”。避免因為平臺的不同導致布局惡心。Java提供了LayoutManager、LayoutManager可以根據運行平臺調整組建的大小,程序員要做的就是為容器選擇合適的布局管理器。

????AWT提供了FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout 5個常用的布局管理器,Swing還提供了一個BoxLayout布局管理器。

(1)FlowLayout布局管理器:

????FlowLayout布局管理器從左到右排列所有組件,遇到邊界就折回下一行重新開始。我們日常輸入文章時用的就是FlowLayout布局管理器。

????FlowLayout有三個構造器:

????1)FlowLayout():使用默認的對齊方式及默認的垂直間距、水平間距創建FlowLayout布局管理器;

????2)FlowLayout(int align):使用指定的對齊方式及默認的垂直間距、水平間距創建;

????3)FlowLayout(int align,int hgap,int vgap):使用指定的對齊方式及指定的垂直間距、水平間距創建。

ps:align表示的是組件的排列方向:FlowLayout.LEFT(從左到右)、FlowLayout.RIGHT(從右到左)、FlowLayout.CENTER(從中間向兩邊)。

舉個例子:

?

這個例子舉得不好,沒有想表達我的意思。設置的排列方式是從中間到四周(CENTER)形式。但是上面的栗子沒看出來,因為有pack()方法,這個是設置窗口為最佳大小,所以看不出來,我注釋了以后就變了

這個就看的比較明顯了。

(2)BorderLayout布局管理器

????BorderLayout將容器分為EAST、SOUTH、WEST、NORTH、CERTER 5個區域。如圖所示:

????當改變使用BorderLayout的容器大小時,NORTH、SOUTH、CENTER區域水平調整,而EAST、WEST、CERTER垂直調整。

????使用BorderLayout有如下兩個注意點:

????1)添加組件時,需要指定到添加到哪個區域中,否則默認添加到中間區域中。

????2)如果向同一個區域中添加多個組件時,后放入的組件會覆蓋先放入的組件。

????這個就解釋了為什么上面的一個例子:ScrollPane栗子里沒有顯示文本框,因為被覆蓋了。

?

????Frame、Dialog、ScrollPane默認使用BorderLayout布局管理器,BorderLayout有兩個構造器:

????1)BorderLayout():使用默認的水平間距和垂直間距;

????2)BorderLayout(int hgap,int vgap):使用指定的水平間距和垂直間距。

舉個栗子:

但是很遺憾,我沒有得到想象中的結果,今天時間有點不夠了,下次再研究。5個布局管理器只說了兩個,繼續加油吧!

????

?

總結

以上是生活随笔為你收集整理的《疯狂Java讲义》11的全部內容,希望文章能夠幫你解決所遇到的問題。

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