第5章圖形界面編程2_第1頁(yè)
第5章圖形界面編程2_第2頁(yè)
第5章圖形界面編程2_第3頁(yè)
第5章圖形界面編程2_第4頁(yè)
第5章圖形界面編程2_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論