程華
摘要:該文介紹了JAVA中幾種常用的布局管理器,詳細(xì)說明了采用BorderLayout和GridLayout布局管理器、TextArea文本區(qū)控件和Button控件設(shè)計(jì)留言板的方法。
關(guān)鍵詞:JAVA;AWT;布局管理器;控件
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)29-0081-02
1概述
圖形用戶界面GUI是指以圖形化的方式與用戶進(jìn)行交互的程序運(yùn)行界面。GUI主要有窗體Window以及其中所容納的各種圖形化組件Component,如菜單、按鈕、文本框等組成。抽象工具包AWT是JDK的一個(gè)子集,其中包含了大量用于圖形用戶界面和繪制圖形、圖像的類和接口,使用它可以方便快速地實(shí)現(xiàn)JAVA GUI應(yīng)用程序的開發(fā)。
2常用布局管理器
布局管理器是指系統(tǒng)事先定義好的若干容器布局效果,使用它們可以方便地實(shí)現(xiàn)
組件在容器中的布局管理,并能夠滿足各種常規(guī)需要。
2.1流式布局
流式布局FlowLayout是Panel(及其子類)類型容器的默認(rèn)布局管理器類型。
布局效果:組件在容器中按照加入次序逐行定位,行內(nèi)從左到右,一行排滿后換行。組件按原始大小進(jìn)行顯示。
對(duì)齊方式可以使用FlowLayout類中定義靜態(tài)常量來設(shè)定,主要包括FlowLayout.LEFT 左對(duì)齊
FlowLayout.RIGHT 右對(duì)齊
FlowLayout.CENTER 居中對(duì)齊
2.2邊界布局
邊界布局BorderLayout是Window及其子類類型容器的默認(rèn)布局管理器。
布局效果:將整個(gè)容器范圍劃分成East、West、South、North、Center五個(gè)區(qū)域,組件只能被添加到指定的區(qū)域。在使用邊界布局的容器中,組件的尺寸也被布局管理器強(qiáng)行控制,即與其所在區(qū)域的尺寸相同。
當(dāng)容器的尺寸發(fā)生變化時(shí),其中各組件相對(duì)位置不變,尺寸隨所在區(qū)域進(jìn)行縮放調(diào)整;調(diào)整時(shí),北、南兩個(gè)區(qū)域只能在水平方向縮放(寬度可調(diào)),東、西兩個(gè)區(qū)域只能在垂直方向縮放(高度可調(diào)),中部區(qū)域都可縮放。
2.3網(wǎng)格布局GddLayout:
網(wǎng)格布局GridLayout布局效果:將容器區(qū)域劃分成規(guī)則的矩形網(wǎng)格,每個(gè)單元格區(qū)域大小相等。組件被添加到每個(gè)單元格中,按組件加入順序先從左到右填滿一行后換行,行間從上到下。
一個(gè)單元格區(qū)域放一個(gè)組件,因此組件大小被布局管理器強(qiáng)行控制,與單元格同等大小
2.4卡片布局
卡片布局CardLayout布局效果:將多個(gè)組件在同一容器區(qū)域內(nèi)交替顯示,相當(dāng)于多張卡片摞在一起,只有最上面的卡片是可見的。
一個(gè)組件就是一張卡片,每張卡片可以指定卡片名;Card-Layout直接提供了組件的顯示控制方法。
3文本區(qū)TextArea控件
文本區(qū)TextArea:用來顯示和編輯多行、多列文本信息,當(dāng)顯示文本超出了文本區(qū)的大小自動(dòng)出現(xiàn)水平和垂直滾動(dòng)條。
4.2留言板實(shí)現(xiàn)過程
通過TestTextArea(1構(gòu)造函數(shù)設(shè)計(jì)標(biāo)題“留言板”,最下面一行的按鈕組采用網(wǎng)格布局設(shè)計(jì)。整個(gè)界面布局采用邊界布局,標(biāo)簽“請(qǐng)您留言”放在NORTH區(qū)域,按鈕組放在SOUTH區(qū)域,文本區(qū)控件TextArea放在CENTER區(qū)域。
部分程序代碼如下:
//文本刪除
5討論
該留言板是在AWT的TextArea和Button組件基礎(chǔ)上開發(fā)而成,留言信息提交后應(yīng)保存到數(shù)據(jù)庫中,并進(jìn)行發(fā)布或顯示處理,本程序直接將提交的信息輸出到控制臺(tái)上;程序中使用了Component類提供的setEnabled(false)方法禁用某個(gè)按鈕組件,比如,在未選擇文本的情況下,“剪切”、“復(fù)制”按鈕為灰色,不可用。該程序在winxp+Eclipse luna環(huán)境下運(yùn)行正常,結(jié)果正確。