版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5部分圖形界面設(shè)計(jì)11按鈕、標(biāo)簽和文本輸入類(lèi)常用Swing組件的繼承關(guān)系圖21按鈕、標(biāo)簽和文本輸入類(lèi)Swing組件的按鈕用JButton類(lèi)表示,JButton常用的構(gòu)造方法有:
JButton()
JButton(Iconicon)
JButton(Stringtext)
JButton(Stringtext,Iconicon)ImageIcon對(duì)象可以根據(jù)圖象的文件名創(chuàng)建,例如:
Iconicon=newImageIcon(“photo.jpg”);31按鈕、標(biāo)簽和文本輸入類(lèi)JButton常用的成員方法有:IcongetIcon()//獲取按鈕上的圖標(biāo)StringgetText()//獲取按鈕上的文本voidsetIcon(Iconicon)//設(shè)置按鈕上的圖標(biāo)voidsetText(Stringtext)//設(shè)置按鈕上的文本voidsetHorizontalAlignment(intalignment)//設(shè)置按鈕上圖標(biāo)和文本的水平對(duì)齊方式voidsetVerticalAlignment(intalignment)//設(shè)置按鈕上圖標(biāo)和文本的垂直對(duì)齊方式JButton能產(chǎn)生許多類(lèi)型的事件,但最常用的是點(diǎn)擊按鈕產(chǎn)生的ActionEvent事件對(duì)象。ActionEvent有如下兩個(gè)常用方法:
ObjectgetSource()//獲取事件源對(duì)象名稱
StringgetActionCommand()//獲取事件源對(duì)象上的文本41按鈕、標(biāo)簽和文本輸入類(lèi)Swing中的標(biāo)簽用Jlabel類(lèi)表示,標(biāo)簽上可以顯示圖標(biāo)和文本。JLabel常用構(gòu)造方法有:
JLabel()JLabel(Iconimage)
JLabel(Stringtext)JLabel(Stringtext,Iconimage,int
horizontalAlignment)JLabel常用的成員方法有:IcongetIcon()//獲取標(biāo)簽上的圖標(biāo)StringgetText()//獲取標(biāo)簽上的文本voidsetIcon(Iconicon)//設(shè)置標(biāo)簽上的圖標(biāo)voidsetText(Stringtext)//設(shè)置標(biāo)簽上的文本voidsetForeground(Colorcolor)//設(shè)置標(biāo)簽上的文本字體顏色voidsetFont(Fontfont)//設(shè)置標(biāo)簽文字的字體51按鈕、標(biāo)簽和文本輸入類(lèi)例10-1在框架窗口中放置按鈕和帶圖標(biāo)的標(biāo)簽,點(diǎn)擊按鈕,改變標(biāo)簽上的圖標(biāo)和文本。61按鈕、標(biāo)簽和文本輸入類(lèi)Swing的文本輸入類(lèi)包括文本框JTextField、文本區(qū)JTextArea和密碼框JPasswordField。這三個(gè)類(lèi)的很多方法是從JTextComponent繼承的,其中常用方法有:
voidsetEditable(booleanb)//設(shè)置可否編輯文本
voidsetText(Stringtext)//設(shè)置文本
StringgetText()//獲取文本JTextField常用的構(gòu)造方法有:
JTextField()
JTextField(intcolumns)//columns指定文本框的寬度是多少個(gè)字符
JTextField(Stringtext)//text是初始文本71按鈕、標(biāo)簽和文本輸入類(lèi)JPasswordField常用的構(gòu)造方法有:JPasswordField()JPasswordField(intcolumns)//int參數(shù)指定寬度是多少個(gè)字符JPasswordField(Stringtext)//text是初始文本JPasswordField有兩個(gè)常用的方法:voidsetEchoChar(charc)//設(shè)置密碼框的回顯字符char[]getPassword()//返回密碼框中的字符81按鈕、標(biāo)簽和文本輸入類(lèi)在文本框和密碼框中輸入回車(chē)將產(chǎn)生ActionEvent
例10-2框架窗口中放置密碼框和文本框,密碼框中輸入文字后回車(chē),要求文本框中顯示密碼框中輸入的內(nèi)容例10-3綜合應(yīng)用標(biāo)簽、文本框和按鈕實(shí)現(xiàn)+、-、*、/四則運(yùn)算,用四個(gè)按鈕分別表示+、-、*、/運(yùn)算,在兩個(gè)文本框中輸入數(shù)據(jù),點(diǎn)擊按鈕后,在第三個(gè)文本框中顯示運(yùn)算結(jié)果。92布局管理器FlowLayout、BorderLayout、GridLayout和CardLayout的用法,這四個(gè)類(lèi)都實(shí)現(xiàn)了接口LayoutManager,因此,LayoutManager的引用變量可以引用這些布局類(lèi)的對(duì)象
JFrame的默認(rèn)布局是BorderLayout,JPanel的默認(rèn)布局是FlowLayout。除了使用默認(rèn)布局外,容器還可以調(diào)用下列方法設(shè)置布局:
voidsetLayout(LayoutManagerm)102布局管理器如果JPanel面板不按默認(rèn)的FlowLayout布局,而是改用BorderLayout,可以使用如下語(yǔ)句設(shè)置:
JPanel
jp=newJPanel();
BorderLayout
bm=newBorderLayout();
jp.setLayout(bm);上述語(yǔ)句也可以簡(jiǎn)寫(xiě)成:
JPanel
jp=newJPanel();
jp.setLayout(new
BorderLayout());112布局管理器FlowLayout是最簡(jiǎn)單的布局管理器,它按照添加的順序,把組件從左到右排列在容器中,放滿一行后開(kāi)始新的一行。FlowLayout的構(gòu)造方法有:
FlowLayout()//組件的對(duì)齊方式取默認(rèn)值,居中對(duì)齊、間距取5個(gè)單位
FlowLayout(intalign)
FlowLayout(intalign,int
hgap,int
vgap)
例10-4按照FlowLayout布局方式,把三個(gè)按鈕加載到框架窗口中。122布局管理器BorderLayout布局管理器將容器劃分成東、西、南、北、中五個(gè)區(qū),在容器中加載組件時(shí)必須指定加載到哪個(gè)區(qū)。其構(gòu)造方法有:
BorderLayout()//組件之間水平和垂直方向的間隙取默認(rèn)值0
BorderLayout(int
hgap,int
vgap)其中,hgap和vgap指定組件之間的水平和垂直方向的間隙。使用BorderLayout布局的容器,增加組件的方法有:
add(Componentcom,intindex)
add(Component
comx)例10-5按照BorderLayout布局方式,在JPanel的五個(gè)區(qū)中各加載一個(gè)按鈕132布局管理器GridLayout把容器劃分成若干行和列大小相等的網(wǎng)格單元,組件就放置在網(wǎng)格中。GridLayout的構(gòu)造方法有:
GridLayout()//行數(shù)為1,即每個(gè)組件占一列
GridLayout(introws,intcols)//rows指定行數(shù),cols指定列數(shù)
GridLayout(introws,intcols,int
hgap,int
vgap)//hgap、vgap為組件的水平、垂直方向間距例10-6編寫(xiě)一個(gè)包含數(shù)字按鈕和四則運(yùn)算符號(hào)按鈕的計(jì)算器GUI界面143選擇組件復(fù)選框JCheckBox常用構(gòu)造方法有:
JCheckBox()
JCheckBox(Iconimage)//image是圖標(biāo)
JCheckBox(Stringtext)//text是文本
JCheckBox(Stringtext,booleanselected)
JCheckBox(Stringtext,Iconimage,booleanselected)其中的boolean參數(shù)指定復(fù)選框的初始狀態(tài)是選中還是未選中,默認(rèn)取未選中狀態(tài)
JCheckBox常用的成員方法有:
voidsetSelected(booleanselected)//設(shè)置是否選中
boolean
isSelected()//返回復(fù)選框當(dāng)前狀態(tài)
153選擇組件復(fù)選框被點(diǎn)擊后其狀態(tài)在選中和未選中之間改變,并產(chǎn)生兩種事件對(duì)象,先觸發(fā)ItemEvent事件,然后觸發(fā)ActionEvent事件。ItemEvent的監(jiān)聽(tīng)接口是ItemListener,這個(gè)接口中只有一個(gè)響應(yīng)ItemEvent事件的方法:
publicvoiditemStateChanged(ItemEvente)ItemEvent的下列方法可以返回產(chǎn)生該事件的事件源對(duì)象名稱:
ObjectgetSource()例10-7JFrame中放置一個(gè)標(biāo)簽和控制標(biāo)簽字體的3個(gè)復(fù)選框,通過(guò)這三個(gè)復(fù)選框控制標(biāo)簽文本的字體
163選擇組件單選按鈕JRadioButton常用的構(gòu)造方法有:
JRadioButton()
JRadioButton(Iconimage)//image是單選按鈕的圖標(biāo)
JRadioButton(Stringtext)//text是單選按鈕的文本
JRadioButton(Stringtext,booleanselected)
JRadioButton(Stringtext,Iconimage,booleanselected)其中的boolean參數(shù)指定單選按鈕的初始狀態(tài)是選中還是未選中,默認(rèn)是未選中狀態(tài)JRadioButton常用的成員方法有:
voidsetSelected(booleanselected)//設(shè)置是否選中
boolean
isSelected()//返回單選按鈕當(dāng)前狀態(tài)173選擇組件與JRadioButton緊密相關(guān)的一個(gè)類(lèi)是按鈕組ButtonGroup同一個(gè)ButtonGroup中只能有一個(gè)單選按鈕處于選中狀態(tài)。如果一個(gè)窗口中有幾組單選按鈕,每組必須新建一個(gè)ButtonGroup對(duì)象,并將該組所有單選按鈕加入這個(gè)按鈕組,才能確保各組的選擇互不干擾
JRadioButtonjb1,jb1;jb1=newJRadioButton(“男”);jb2=newJRadioButton(“女”);
ButtonGroup
bg=newButtonGroup();bg.add(jb1);//把單選按鈕加入按鈕組
bg.add(jb2);//jb1和jb2在同一個(gè)按鈕組中,只能有一個(gè)處于選中狀態(tài)。ButtonGroup不是組件,不能加入容器中。
183選擇組件單選按鈕被點(diǎn)擊時(shí)其狀態(tài)發(fā)生改變,先觸發(fā)ItemEvent事件,然后觸發(fā)ActionEvent事件例10-8用單選按鈕控制標(biāo)簽的字體大小和顏色193選擇組件組合框JComboBox常用的構(gòu)造方法和成員方法有:
JComboBox()//創(chuàng)建一個(gè)空組合框
JComboBox(Object[]items)//創(chuàng)建一個(gè)包含指定數(shù)組元素的組合框
voidaddItem(Objectitem)//添加項(xiàng)目到組合框
ObjectgetItemAt(intindex)//返回指定序號(hào)的項(xiàng)目
int
getSeletedIndex()//返回選中的項(xiàng)目序號(hào)
ObjectgetSeletedItem()//返回選中的項(xiàng)目例10-9用組合框控制框架窗口背景色203選擇組件滑塊JSlider允許用戶從圖形顯示的數(shù)值區(qū)間中選擇一個(gè)值。為了更精確地取值,JSlider還可以設(shè)置標(biāo)尺。JSlider常用的構(gòu)造方法和成員方法有JSlider()//創(chuàng)建0~100區(qū)間、初始值為50的滑塊JSlider(intmin,intmax,intvalue)//創(chuàng)建min~max區(qū)間、初始值為value的滑塊voidsetMajorTickSpacing(intn)//設(shè)置大標(biāo)尺voidsetMinorTickSpacing(intn)//設(shè)置小標(biāo)尺voidsetPaintTicks(booleanvisible)//設(shè)置標(biāo)尺是否顯示int
getMaximun()//返回滑塊表示的最大值int
getMinimun()//返回滑塊表示的最小值int
getValue()//返回滑塊表示的當(dāng)前值voidaddChangeListener(ChangeListenerl)//注冊(cè)ChangeEvent事件監(jiān)聽(tīng)對(duì)象213選擇組件移動(dòng)滑塊時(shí),產(chǎn)生ChangeEvent事件,這個(gè)事件的監(jiān)聽(tīng)接口是ChangeListener,其中只有一個(gè)方法:
publicvoidstateChanged(ChangeEvente)因此,響應(yīng)滑塊事件必須覆蓋這個(gè)方法。JSlider是Swing特有的組件,AWT中沒(méi)有滑塊,JSlider、ChangeEvent、ChangeListener都是Swing中的類(lèi)。ChangeEvent下列方法可以返回產(chǎn)生這個(gè)事件的事件源對(duì)象名稱:
ObjectgetSource()223選擇組件例10-10框架窗口中有一個(gè)滑塊和一個(gè)標(biāo)簽,移動(dòng)滑塊時(shí)標(biāo)簽中顯示滑塊的當(dāng)前值234菜單Swing中的菜單界面要使用3個(gè)類(lèi),菜單欄JMenuBar、菜單JMenu、菜單項(xiàng)JmenuItem
菜單欄在窗口的頂部,菜單則放置在菜單欄中,菜單下拉后可以看到其中的菜單項(xiàng)和子菜單框架JFrame的下列方法設(shè)置菜單欄:
voidsetMenuBar(JMenuBar
mb)例如:
JFramef=newJFrame();
JMenuBar
mb=newJMenuBar();
f.setMenuBar(mb);244菜單JMenu常用的構(gòu)造方法和成員方法有:
JMenu(Strings)//s是菜單標(biāo)簽
JMenuItem
add(JMenuItemitem)//將菜單項(xiàng)加入菜單末尾JMenuItem
add(Stringlabel)//label是要添加的菜單標(biāo)簽
voidaddSeperator()//向菜單添加一個(gè)分隔符
voidremove(intindex)//刪除指定菜單項(xiàng)
voidremove(JMenuItemitem)//刪除指定菜單項(xiàng)
JMenuItem
add(JMenuItemitem,intindex)//向指定位置插入一個(gè)菜單項(xiàng)例如:JMenu
jm=newJMenu(“文件”);JMenuItemmi1=newJMenuItem(“打開(kāi)”);//創(chuàng)建菜單項(xiàng)jm.add(mi1);JMenuItemmi2=jm.add(“保存”);jm.remove(mi2);254菜單JMenuItem常用的構(gòu)造方法和成員方法有:
JMenuItem(Stringtext)
JMenuItem(Stringtext,Iconicon)//創(chuàng)建帶圖標(biāo)和文本的菜單
addActionListener(ActionListenerl)//注冊(cè)監(jiān)聽(tīng)對(duì)象選中菜單項(xiàng)將產(chǎn)生ActionEvent事件,響應(yīng)程序必須實(shí)現(xiàn)ActionListenet接口,覆蓋actionPerformed()方法。例10-11編寫(xiě)一個(gè)計(jì)算兩個(gè)數(shù)的四則運(yùn)算的GUI程序,操作符用菜單項(xiàng)表示,輸入值和運(yùn)算結(jié)果用文本框表示265工具欄Swing使用JToolBar作為存放工具欄組件的容器,工具欄中的組件通常是圖標(biāo)形式顯示的按鈕,組合框也是工具欄中的常用組件。JToolBar常用的構(gòu)造方法和成員方法有:
JToolBar()
JToolBar(Stringtitle)//工具欄處于浮動(dòng)狀態(tài)時(shí)窗口的標(biāo)題
JToolBar(intorientation)//指定工具攔水平或垂直方向放置
add(Componentcomp)//增加組件到工具欄
addSeparator()//在工具欄末尾添加一個(gè)分隔符orientation有兩個(gè)取值:SwingConstants.HORIZONTAL
和SwingConstants.VERTICAL,默認(rèn)取第一個(gè)值。275工具欄工具欄上的組件調(diào)用下列方法可以為該命令設(shè)置提示信息:
setToolTipText(Stringtext)例10-12工具欄中存放四個(gè)帶圖標(biāo)按鈕代表四種軟件產(chǎn)品,光標(biāo)停留在按鈕上,顯示這個(gè)按紐表示何種軟件,點(diǎn)擊按鈕,由標(biāo)簽文本解釋這種軟件的作用286對(duì)話框Java提供了創(chuàng)建標(biāo)準(zhǔn)對(duì)話框的類(lèi)JOptionPane,使用這個(gè)類(lèi)可以創(chuàng)建四種標(biāo)準(zhǔn)對(duì)話框:·消息對(duì)話框,顯示消息等待用戶點(diǎn)擊OK按鈕。·確認(rèn)對(duì)話框,顯示問(wèn)題等待用戶確認(rèn),即點(diǎn)擊OK或Cancel等按鈕?!ぽ斎雽?duì)話框,等待并獲取用戶從文本框等組件中輸入的信息?!みx擇對(duì)話框,等待并獲取用戶從一組選項(xiàng)中選擇信息。296對(duì)話框JOptionPane的下列重載的方法創(chuàng)建并顯示一個(gè)消息對(duì)話框:
publicstaticvoidshowMessageDialog(Component
parentComp,Objectmessage)publicstaticvoidshowMessageDialog(Component
parentComp,Objectmessage,Stringtitle,int
messageType)publicstaticvoidsh
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加工課課件教學(xué)課件
- 幼師課件用電教學(xué)課件
- 2024年國(guó)際旅游開(kāi)發(fā)與合作合同
- 2024年廣州市二手房交易合同(標(biāo)準(zhǔn)版)
- 2024年度智能制造設(shè)備采購(gòu)合同
- 2024年度物業(yè)公司居民關(guān)系協(xié)調(diào)服務(wù)合同
- 2024年大數(shù)據(jù)中心合作運(yùn)營(yíng)合同
- 2024年工程質(zhì)量檢驗(yàn)與確認(rèn)合同
- 魚(yú)罐頭課件教學(xué)課件
- 2024年庫(kù)房租賃與健身器材存放合同
- 混凝土硫酸鹽侵蝕基本機(jī)理研究
- 《機(jī)械設(shè)計(jì)基礎(chǔ)A》機(jī)械電子 教學(xué)大綱
- 水工巖石分級(jí)及圍巖分類(lèi)
- 基因擴(kuò)增實(shí)驗(yàn)室常用儀器使用課件
- 斜井敷設(shè)電纜措施
- 施工機(jī)械設(shè)備租賃實(shí)施方案
- 牙膏產(chǎn)品知識(shí)課件
- 液化氣站人員勞動(dòng)合同范本
- 第一章 教育政策學(xué)概述
- 常見(jiàn)土源性寄生蟲(chóng)演示文稿
- 全員育人導(dǎo)師制學(xué)生談話記錄
評(píng)論
0/150
提交評(píng)論