- Java語言GUI程序設(shè)計
- 趙滿來
- 1988字
- 2019-12-06 14:22:11
3.5 組合框的使用及四則運(yùn)算計算程序設(shè)計
本節(jié)首先介紹組合框組件的基本知識,然后使用組合框?qū)?.1節(jié)所設(shè)計的簡單加法計算程序擴(kuò)展為一個四則運(yùn)算計算器,并通過該程序的設(shè)計展示if語句的應(yīng)用。
3.5.1 組合框
組合框由一個提供選擇項的選項列表、一個向下拉開列表的下三角按鈕和一個幫助查找選擇項的文本框組合而成。如果界面中有較多的選擇項提供給用戶選擇,且需要節(jié)省屏幕空間,也許還希望節(jié)省用戶查找選項的時間,那么組合框JComboBox是合適的組件。
在“組件面板”中單擊“Swing控件”組中的“組合框”組件,然后在“設(shè)計”視圖中的容器上單擊,即可創(chuàng)建一個組合框組件。
組合框組件比前面介紹過的組件都要復(fù)雜,具有較多的屬性,以下介紹幾個重要屬性。
1. model
該屬性設(shè)置組合框中的列表項數(shù)據(jù)。在創(chuàng)建了組合框組件后,GUI構(gòu)建器自動生成了4個列表項。對于少量字符串類型的列表項,單擊屬性窗口中該屬性行右側(cè)的文本框,直接輸入各列表項的字符串,中間用英文逗號分隔即可。更好用的方法是,單擊該屬性行右側(cè)的…按鈕,在組件的model對話框中使用默認(rèn)的“組合框模型編輯器”,在中間部位的輸入框中逐項輸入各列表項即可,每項一行。也可以使用“組合框模型編輯器”刪除和修改已有的列表項。
如果列表項較多或者需要使用更靈活的設(shè)置方法,則需要使用組合框的數(shù)據(jù)模型對象設(shè)置。此部分內(nèi)容后面章節(jié)再述。
2. editable
該屬性指定可否在組合框的文本域中輸入。單擊該屬性行右側(cè)的復(fù)選框,設(shè)置為選取(true)狀態(tài)時用戶可以在文本域中輸入。否則用戶不能輸入,且文本域以灰色顯示。
3. selectedIndex
該屬性記錄被選中列表項的索引。是只讀屬性,不可在屬性窗口直接修改,但可以通過定制代碼設(shè)置。
4. maximumCount
該屬性設(shè)置當(dāng)用戶單擊組合框右端下三角按鈕時,在下拉列表框中可以顯示的最多列表項個數(shù),其余列表項可以通過下拉列表框的滾動條找到。設(shè)置方法是在該屬性行的值列直接輸入整數(shù)。
5. toolTipText
該屬性設(shè)置組件的即時提示信息。當(dāng)用戶鼠標(biāo)指針移動到組件上時稍微停留,則會出現(xiàn)一個黃色提示框顯示該屬性所設(shè)置的提示文字。設(shè)置方法是在該屬性行的值列直接輸入字符串。
此外,組合框組件也具有設(shè)置前景顏色、背景顏色、字體等屬性,設(shè)置方法與第2章所述相同。
3.5.2 四則運(yùn)算計算程序設(shè)計
在2.1節(jié)設(shè)計了一個簡單加法計算程序,使用組合框可以將它擴(kuò)展為一個更為實用的四則運(yùn)算計算器。
例3.4 設(shè)計一個表達(dá)式風(fēng)格的四則運(yùn)算計算器程序。
解:按照以下步驟操作。
(1)在chap03項目的book.ifdemos包名上右擊,在快捷菜單中單擊“新建”|“JFrame窗體”菜單項,類名輸入ArithmeticClac,單擊“完成”按鈕。按住鼠標(biāo)左鍵拖動窗體的右邊框,當(dāng)黃色提示框顯示630時松開鼠標(biāo)左鍵。
(2)在“組件面板”中單擊“Swing控件”組的“文本字段”組件圖標(biāo),光標(biāo)移到窗體的中間靠左邊框位置單擊。修改該組件的變量名為jTextFieldNum1,columns屬性值為12,text屬性值為空,單擊horizontalAlignment屬性值列并選擇TRAILING。
(3)在“組件面板”中單擊“Swing控件”組的圖標(biāo),光標(biāo)移到窗體中靠近jTextFieldNum1組件,當(dāng)幫助欄出現(xiàn)“已移至距左側(cè)組件的中間位置,基線與另一個組件對齊”提示時單擊。修改該組件的變量名為jComboBoxOpr,在toolTipText屬性值列輸入“單擊右端下三角按鈕選擇具體運(yùn)算類型”。
(4)在屬性面板中單擊model屬性行右端的…按鈕,在model對話框中將列表項“Item 1”修改為“+”“Item 2”修改為“-”“Item 3”修改為“*”“Item 4”修改為“/”,單擊“確定”按鈕。
(5)在窗體中右擊jTextFieldNum1組件,在快捷菜單中選擇第一個“復(fù)制”菜單項。在窗體中再次右擊,在快捷菜單中選擇“粘貼”菜單項。鼠標(biāo)拖動粘貼產(chǎn)生的文本字段組件,移動到組合框組件jComboBoxOpr的右側(cè)水平位置。修改該組件的變量名為jTextFieldNum2。
(6)在“組件面板”中單擊“Swing控件”組的按鈕圖標(biāo),光標(biāo)移到窗體中靠近jTextFieldNum2組件,當(dāng)幫助欄出現(xiàn)“已移至距左側(cè)組件的中間位置,基線與另一個組件對齊”提示時單擊。修改該組件的變量名為jButtonEq,修改text屬性值為“=”,在toolTipText屬性值列輸入“單擊該按鈕執(zhí)行計算”。
(7)重復(fù)步驟(5),在jButtonEq組件右邊創(chuàng)建一個文本字段組件,修改其變量名為jTextFieldResult,修改columns屬性值為16,清除editable屬性值復(fù)選框的勾選。
(8)在靠近窗體底邊框且靠近水平中線位置創(chuàng)建一個按鈕組件,變量名修改為jButtonClear,text屬性值修改為“清除”。
(9)在jButtonClear組件的右邊適當(dāng)位置創(chuàng)建一個按鈕組件,變量名修改為jButtonExit,text屬性值修改為“退出”。
完成上述操作步驟后,得到如圖3.11所示的界面。

圖3.11 簡單四則運(yùn)算計算器程序的設(shè)計視圖及運(yùn)行界面
(10)在設(shè)計視圖中單擊“=”按鈕,接著在屬性窗口中單擊“事件”標(biāo)簽,然后單擊actionPerformed行右端的…按鈕。在對話框中單擊“添加”按鈕,新建處理程序的名稱輸入“calcOpr”,單擊“確定”按鈕,再次單擊“確定”按鈕。
(11)在calcOpr方法體中輸入以下程序代碼。

(12)使用與步驟(10)相同的操作,為“清除”按鈕添加actionPerformed事件處理方法clearAll,并在該方法體中輸入以下程序代碼。
jTextFieldNum1.setText(""); jTextFieldNum2.setText(""); jTextFieldResult.setText("");
(13)使用與步驟(10)相同的操作,為“退出”按鈕添加actionPerformed事件處理方法calcExit,并在該方法體中輸入以下程序代碼。
System.exit(0);
完成上述步驟后,程序能夠按照題意運(yùn)行。
- 摩登創(chuàng)客:與智能手機(jī)和平板電腦共舞
- Mastering Selenium WebDriver
- 深入理解Java7:核心技術(shù)與最佳實踐
- C語言程序設(shè)計案例精粹
- 數(shù)據(jù)結(jié)構(gòu)與算法分析(C++語言版)
- 51單片機(jī)C語言開發(fā)教程
- Python語言實用教程
- Visual Basic程序設(shè)計習(xí)題與上機(jī)實踐
- Apache Camel Developer's Cookbook
- Penetration Testing with the Bash shell
- Python網(wǎng)絡(luò)爬蟲實例教程(視頻講解版)
- Mastering Embedded Linux Programming
- Python機(jī)器學(xué)習(xí)與量化投資
- Getting Started with Web Components
- Hadoop Blueprints