資源描述:
《java圖形用戶界面設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Java圖形用戶界面設(shè)計(jì)前言前言前言前言隨著Internet的飛速發(fā)展,Java技術(shù)也得到了越來(lái)越廣泛的應(yīng)用。而無(wú)論我們是采用J2SE、J2EE還是J2ME,GUI都是不能回避的問(wèn)題?,F(xiàn)在的應(yīng)用軟件越來(lái)越要求界面友好、功能強(qiáng)大而又使用簡(jiǎn)單。而眾所周知,在Java中進(jìn)行GUI設(shè)計(jì)相對(duì)于其跨平臺(tái)、多線程等特性的實(shí)現(xiàn)要復(fù)雜和麻煩許多。這也是很多Java程序員抱怨的事情。但GUI已經(jīng)成為程序發(fā)展的方向,所以我們也必須了解Java的GUI設(shè)計(jì)方法和特點(diǎn)。其實(shí),采用Java提供的布局管理器接口和相應(yīng)的布局管理類,我們也可以做出相當(dāng)漂亮的界面來(lái),當(dāng)然實(shí)現(xiàn)起來(lái)肯定要比VB麻煩許多。本文試圖通過(guò)自己的開
2、發(fā)經(jīng)歷介紹一些具體的應(yīng)用實(shí)例,希望能給那些曾經(jīng)象我一樣苦悶的Java癡迷者一些幫助。JavaJavaJavaJava中的布局管理器中的布局管理器中的布局管理器中的布局管理器2.12.12.12.1為什么要使用布局為什么要使用布局為什么要使用布局為什么要使用布局在實(shí)際編程中,我們每設(shè)計(jì)一個(gè)窗體,都要往其中添加若干組件。為了管理好這些組件的布局,我們就需要使用布局管理器。比如說(shuō),設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器,或一個(gè)文本編輯器等等。這些組件是讓JVM自己任意安排呢?還是按照一定的位置關(guān)系進(jìn)行規(guī)范的安排呢?當(dāng)然應(yīng)該選擇后者。將加入到容器的組件按照一定的順序和規(guī)則放置,使之看起來(lái)更美觀,這就是布局。在J
3、ava中,布局由布局管理器(LayoutManager)來(lái)管理。那么,我們?cè)谑裁磿r(shí)候應(yīng)該使用布局管理器?應(yīng)選擇哪種布局管理器?又該怎樣使用布局管理器呢?如果你寫的是GUI程序,在使用AWT/Swing組件時(shí)就不應(yīng)硬性設(shè)置組件的大小和位置,而應(yīng)該使用Java的布局管理器(LayoutManager)來(lái)設(shè)置和管理可視組件的大小和位置,否則就有可能造成布局混亂。不信,你可以新建一個(gè)Frame(或JFrame),通過(guò)setBounds()方法往其中添加幾個(gè)Button(或JButton),一旦你將窗體拉大或縮小時(shí),你會(huì)發(fā)現(xiàn)組件的排列完全不是按你所預(yù)想的那樣。為了解決這個(gè)問(wèn)題,即當(dāng)窗體(或容器)
4、縮放時(shí),組件位置也隨之合理調(diào)整,我們就需要使用布局管理器。為此,我們首先要知道Java的布局方式,Java提供的API中有些什么布局管理器,它們的布局特點(diǎn)是什么。2.2Java2.2Java2.2Java2.2Java的布局方式的布局方式的布局方式的布局方式我們都知道,Java的GUI界面定義是由AWT類包和Swing類包來(lái)完成的。它在布局管理上采用了容器和布局管理分離的方案。也就是說(shuō),容器只管將其他組件放入其中,而不管這些組件是如何放置的。對(duì)于布局的管理交給專門的布局管理器類(LayoutManager)來(lái)完成?,F(xiàn)在我們來(lái)看Java中布局管理器的具體實(shí)現(xiàn)。我們前面說(shuō)過(guò),Java中的容
5、器類(Container),它們只管加入組件(Component),也就是說(shuō),它只使用自己的add()方法向自己內(nèi)部加入組件。同時(shí)他記錄這些加入其內(nèi)部的組件的個(gè)數(shù),可以通過(guò)container.getComponentCount()方法類獲得組件的數(shù)目,通過(guò)container.getComponent(i)來(lái)獲得相應(yīng)組件的句柄。然后LayoutManager類就可以通過(guò)這些信息來(lái)實(shí)際布局其中的組件了。Java已經(jīng)為我們提供了幾個(gè)常用的布局管理器類,例如:FlowLayout、BorderLayout、GridLayout、GridBagLayout等。下面列表說(shuō)明它們的布局特點(diǎn):包類特點(diǎn)
6、java.awtCardLayout將組件象卡片一樣放置在容器中,在某一時(shí)刻只有一個(gè)組件可見java.awtFlowLayout將組件按從左到右而后從上到下的順序依次排列,一行不能放完則折到下一行繼續(xù)放置java.awtGridLayout形似一個(gè)無(wú)框線的表格,每個(gè)單元格中放一個(gè)組件java.awtBorderLayout將組件按東、南、西、北、中五個(gè)區(qū)域放置,每個(gè)方向最多只能放置一個(gè)組件java.awtGridBagLayout非常靈活,可指定組件放置的具體位置及占用單元格數(shù)目Javax.swingBoxLayout就像整齊放置的一行或者一列盒子,每個(gè)盒子中一個(gè)組件Javax.swi
7、ngSpringLayout根據(jù)一組約束條件放置子組件Javax.swingScrollPaneLayout專用于JPanel一起放置到另外一個(gè)JPanel(2),采用GridLayout布局;而將其它的JButton則放置在另外一個(gè)JPanel(3)中,采用GridLayout布局;再將JPanel(2)和JPanel(3)加入該JApplet,即可實(shí)現(xiàn)界面需求。具體實(shí)現(xiàn)方法如下:這樣,就一切OK啦。具體的實(shí)現(xiàn)代碼可參見附件中的Calcula