(收)Java中的布局管理器概述

來源:互聯網
上載者:User
隨著Internet的飛速發展,Java技術也得到了越來越廣泛的應用。而無論我們是採用J2SE、J2EE還是J2ME,GUI都是不能迴避的問題。現在的應用軟體越來越要求介面友好、功能強大而又使用簡單。而眾所周知,在Java中進行GUI設計相對於其跨平台、多線程等特性的實現要複雜和麻煩許多。這也是很多Java程式員抱怨的事情。但GUI已經成為程式發展的方向,所以我們也必須瞭解Java的GUI設計方法和特點。其實,採用Java提供的布局管理器介面和相應的布局管理類,我們也可以做出相當漂亮的介面來,當然實現起來肯定要比VB麻煩許多。本文試圖通過自己的開發經曆介紹一些具體的應用執行個體,希望能給那些曾經象我一樣苦悶的Java癡迷者一些協助。

  Java中的布局管理器

  為什麼要使用布局

  在實際編程中,我們每設計一個表單,都要往其中添加若干組件。為了管理好這些組件的布局,我們就需要使用布局管理器。比如說,設計一個簡單的計算機,或一個文字編輯器等等。這些組件是讓JVM 自己任意安排呢?還是按照一定的位置關係進行規範的安排呢?當然應該選擇後者。將加入到容器的組件按照一定的順序和規則放置,使之看起來更美觀,這就是布局。在Java中,布局由布局管理器 (LayoutManager) 來管理。那麼,我們在什麼時候應該使用布局管理器?應選擇哪種布局管理器?又該怎樣使用布局管理器呢?

  如果你寫的是GUI程式,在使用AWT/Swing組件時就不應硬性設定組件的大小和位置,而應該使用Java的布局管理器(LayoutManager)來設定和管理可視組件的大小和位置,否則就有可能造成布局混亂。不信,你可以建立一個Frame(或JFrame),通過setBounds()方法往其中添加幾個Button(或JButton),一旦你將表單拉大或縮小時,你會發現組件的排列完全不是按你所預想的那樣。為瞭解決這個問題,即當表單(或容器)縮放時,組件位置也隨之合理調整,我們就需要使用布局管理器。

  為此,我們首先要知道Java的布局方式,Java提供的API中有些什麼布局管理器,它們的布局特點是什麼。

  Java的布局方式

  我們都知道,Java的GUI介面定義是由AWT類包和Swing類包來完成的。它在布局管理上採用了容器和布局管理分離的方案。也就是說,容器只管將其他組件放入其中,而不管這些組件是如何放置的。對於布局的管理交給專門的布局管理器類(LayoutManager)來完成。

  現在我們來看Java中布局管理器的具體實現。我們前面說過,Java中的容器類(Container),它們只管加入組件(Component),也就是說,它只使用自己的add()方法向自己內部加入組件。同時他記錄這些加入其內部的組件的個數,可以通過container.getComponentCount()方法類獲得組件的數目,通過container.getComponent(i)來獲得相應組件的控制代碼。然後LayoutManager類就可以通過這些資訊來實際布局其中的組件了。

   Java已經為我們提供了幾個常用的布局管理器類,例如: FlowLayout、BorderLayout、GridLayout、GridBagLayout等。下面列表說明它們的布局特點:

  包類特點

  java.awt CardLayout 將組件象卡片一樣放置在容器中,在某一時刻只有一個組件可見
  java.awt FlowLayout 將組件按從左至右而後從上到下的順序依次排列,一行不能放完則折到下一行繼續放置
  java.awt GridLayout 形似一個無框線的表格,每個儲存格中放一個組件
  java.awt BorderLayout 將組件按東、南、西、北、中五個地區放置,每個方向最多隻能放置一個組件
  java.awt GridBagLayout 非常靈活,可指定組件放置的具體位置及佔用儲存格數目
  Javax.swing BoxLayout 就像整齊放置的一行或者一列盒子,每個盒子中一個組件
  Javax.swing SpringLayout 根據一組約束條件放置子組件
  Javax.swing ScrollPaneLayout 專用於JScrollPane,含一個Viewport,一個行頭、一個列頭、兩個捲軸和四個角組件
  Javax.swing OverlayLayout 以彼此覆蓋的形式疊置組件
  Javax.swing ViewportLayout JViewport的預設布局管理器

  事實上,在大多數情況下,綜合運用好這些布局管理器已可以滿足需要。當然對於特殊的具體應用,我們可以通過實現LayoutManager或LayoutManager2介面來定義自己的布局管理器。下面我們通過幾個執行個體來瞭解幾個常用的布局管理器的使用方法。 
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.