![圖形用戶界面_第1頁(yè)](http://file4.renrendoc.com/view9/M01/10/37/wKhkGWcoLH6ACggXAAFXCD8PK8k534.jpg)
![圖形用戶界面_第2頁(yè)](http://file4.renrendoc.com/view9/M01/10/37/wKhkGWcoLH6ACggXAAFXCD8PK8k5342.jpg)
![圖形用戶界面_第3頁(yè)](http://file4.renrendoc.com/view9/M01/10/37/wKhkGWcoLH6ACggXAAFXCD8PK8k5343.jpg)
![圖形用戶界面_第4頁(yè)](http://file4.renrendoc.com/view9/M01/10/37/wKhkGWcoLH6ACggXAAFXCD8PK8k5344.jpg)
![圖形用戶界面_第5頁(yè)](http://file4.renrendoc.com/view9/M01/10/37/wKhkGWcoLH6ACggXAAFXCD8PK8k5345.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第11章圖形用戶界面lava
^11.1GUI組件簡(jiǎn)介
b11.2程序框架
團(tuán)11.3事件處理
-11.4布局管理器
行11.5基本Swing組件
^11.6高級(jí)Swing組件
^11.7習(xí)題
n.2程序框架lava
卡要?jiǎng)?chuàng)建一個(gè)圖形用戶界面,首先需要?jiǎng)?chuàng)
建一個(gè)特殊的窗口來容納用戶界面組件。
,Java語言中,這個(gè)特殊的窗口一般是一
個(gè)應(yīng)用程序框架或applet。
1121創(chuàng)建應(yīng)用程序框架
*JFram一的構(gòu)造方法:
-publicJFrame()
//創(chuàng)建一個(gè)沒有標(biāo)題的框架
-publicJFrame(Stringtitle)
//創(chuàng)建一個(gè)帶有指定標(biāo)題的框架
例11-1創(chuàng)建應(yīng)用程序框架
源代碼運(yùn)行
11.2.2添加組件
例11-2添加組件
源代碼運(yùn)行
例11-3直接調(diào)用方法add()添加組件
源代碼運(yùn)行
11.3事件處理
-11.3.1事件和事件源
-11.3.2事件監(jiān)聽器
-11.3.3事件監(jiān)聽適配器
0
J■-J
11.3.1事件和事件源lava
n.3.1事件和事件源(續(xù))
JButton點(diǎn)擊按鈕ActionEv一nt
JT一xtFi一Id在文本域按回車鍵ActionEv一nt
JCh一ckBox點(diǎn)擊復(fù)選框ActionEv一nt、工t一mEv一nt
JRadioButton點(diǎn)擊單選按鈕ActionEv一nt、工tamEv一nt
JComboBox選定選項(xiàng)ActionEv一nt、工t一mEv一nt
JList選定選項(xiàng)ListSelactionEvant
JM一nu工t一m選定菜單項(xiàng)ActionEv一nt、工tamEv一nt
JSlid一r滑動(dòng)滑塊Chang一Evant
Window窗口打開、關(guān)閉等WindowEv一nt
Component點(diǎn)擊或移動(dòng)鼠標(biāo)Mous一Ev一nt
Component按下或釋放鍵KeyEvent
Contain一r在容器中添加或刪除組件ContainerEvent
Component組件獲得或失去焦點(diǎn)FocusEvent
Component組件移動(dòng)、改變大小等Compon一ntEv一nt
11.3.2事件監(jiān)聽器
用戶事件
觸發(fā)
通知
事件
操作
注冊(cè)
組件(事件源)監(jiān)聽器
11.3.2事件監(jiān)聽器(續(xù))
ActionEventActionListeneractionPerformed(ActionEvente)
addActionListener()
ItemEventItemListeneritemStateChanged(ItemEvente)
addltemListener()
MouseEventMouseListenermouseClicked(MouseEvente)
addMouseListener()mousePressed(MouseEvente)
mouseReleased(MouseEvente)
mouseEntered(MouseEvente)
mouseExited(MouseEvente)
MouseEventMouseMotionListenermouseDragged(MouseEvente)
addMouseMotionListener()mouseMoved(MouseEvente)
WindowEventWindowListenerwindowOpened(WindowEvente)
addWindowListener()windowClosing(WindowEvente)
windowClosed(WindowEvente)
windowlconified(WindowEvente)
windowDeiconified(WindowEvente)
windowActivated(WindowEvente)
windowDeactivated(WindowEvente)
ListSelectionEventListSelectionListenervalueChanged(ListSelectionEvente)
addListSelectionListener()
11.3.2事件監(jiān)聽器(續(xù))
例11-4動(dòng)作事件處理
源代碼運(yùn)行
例11-5使用匿名內(nèi)部類實(shí)現(xiàn)監(jiān)聽器接口
源代碼運(yùn)行
0J■-J
11.3.3事件監(jiān)聽適配器lava
ComponentListenerComponentAdapter
ContainerListenerContainerAdapter
FocusListenerFocusAdapter
KeyListenerKeyAdapter
MouseListenerMouseAdapter
MouseMotionListenerMouseMotionAdapter
WindowListenerWindowAdapter
n.3.3事件監(jiān)聽適配器(續(xù))
卡適配器用空方法實(shí)現(xiàn)了相應(yīng)監(jiān)聽器接口
中的每個(gè)方法,因此程序中只需繼承相
應(yīng)適配器,并覆蓋必要的方法。
例11-6使用監(jiān)聽適配器
源代碼運(yùn)行
11.4布局管理器
卡布局管理器控制組件在容器中的大小、
形狀和位置。
-每種容器都有自己默認(rèn)的布局管理器O
11.4布局管理器(續(xù))
bBord一rLayout
^FlowLayout
^CardLayout
^GridLayout
^GridBagLayout
11.4.1BorderLayout
罰Bord一rLayout管理器將容器內(nèi)的空間戈U分為5
個(gè)區(qū)域:
-BorderLayout.EAST
-BorderLayout.WEST
-Bord一rLayout.SOUTH
-BorderLayout.NORTH
-Bord一rLayout.CENTER
其中,每個(gè)區(qū)域中最多只能容納一個(gè)組件。
11.4.1Bord一rLayout(續(xù))
,構(gòu)造方法:
一publicBord一rLayout()
//創(chuàng)建Bord一rLayout對(duì)象,組件之間沒有水平和垂直間。巨
-publicBord一rLayout(inthgap,intvgap)
〃以參數(shù)指定的水平和垂直間距創(chuàng)建Bord一rLayout對(duì)象
例11-7BorderLayout
源代碼運(yùn)行
11.4.2FlowLayout
,構(gòu)造方法:
-publicFlowLayout()
//創(chuàng)建FlowLayout對(duì)象,對(duì)齊方式是默認(rèn)的居中對(duì)齊,
//組件之間的水平和垂直間距都是默認(rèn)的5個(gè)像素
-publicFlowLayout(intalign)
//以參數(shù)指定的對(duì)齊方式創(chuàng)建FlowLayout對(duì)象,組件之
//間的水平和垂直間距都是默認(rèn)的5個(gè)像素
-publicFlowLayout(intalign,int
hgap,intvgap)
//以參數(shù)指定的對(duì)齊方式、水平和垂直間距創(chuàng)建
//FlowLayout對(duì)象
11.4.2FlowLayout(續(xù))
bFlowLayout管理器根據(jù)容器的組件排列方向?qū)傩?/p>
(Compon一ntOri一ntation),簡(jiǎn)單地將容器中的
組件按添加的先后順序依次擺放(默認(rèn)情況下是從左
到右),如果一行排滿,則在下一行中繼續(xù)。
例11-8FlowLayout
源代碼運(yùn)行
例11-9設(shè)置容器的組件由卜列方向?qū)傩?/p>
源代碼運(yùn)行
0
J■-J
11.4.3GridLayoutlava
-GridLayout管理器把容器的空間平均劃分為若干行
乘若干列的矩形網(wǎng)格,每一個(gè)網(wǎng)格中只能添加一個(gè)組
件。
,如果程序指定了劃分的具體非0行數(shù),編譯器將忽略指
定的具體列數(shù),實(shí)際列數(shù)將由指定的行數(shù)和實(shí)際的組
件數(shù)決定。只有在行數(shù)指定為0時(shí),指定的列數(shù)才有實(shí)
際意義。不過,行數(shù)和列數(shù)不能同時(shí)指定為0,否則運(yùn)
行時(shí)會(huì)引發(fā)異常。
11.4.3GridLayout(續(xù))
行構(gòu)造方法:
-publicGridLayout()
//創(chuàng)建GridLayout對(duì)象,每行中只有一列
-publicGridLayout(introwsrintcols)
//以參數(shù)指定的行數(shù)和歹4數(shù)創(chuàng)建GridLayout對(duì)象,組件之
//間的水平和垂直間距為0
-publicGridLayout(introws,int
colsAinthgapfintvgap)
//以參數(shù)指定的行數(shù)、列數(shù)以及組件之間的水平和垂直間距
//創(chuàng)建GridLayout對(duì)彖
例11-10GridLayout
源代碼運(yùn)行
11.4.4CardLayout
①CardLayout將容器當(dāng)作一個(gè)卡片盒,把添加到容器
中的每一個(gè)組件當(dāng)作一張卡片,每次只有一張卡片是
4r見的。為獨(dú)桌個(gè)綃件向見,可以調(diào)用CardLayout
對(duì)象的如下方法:
-publicvoidfirst(Contain一rpar一nt)
-publicvoidn一xt(Containerpar一nt)
-publicvoidprevious(Contain一rpar一nt)
-publicvoidlast(Containerpar一nt)
-publicvoidshow(Containerpar一nt.
Stringnam一)
注意:上述方法中的參數(shù)parent必須是真正容納
組件的容器類對(duì)象,即它寸以是JFrame、JApplet
等的內(nèi)容窗格或JPanel等的對(duì)象,但不能直接接收
JFrame>JApplet等的對(duì)象。
11.4.4CardLayout(續(xù))
生將組件添加到CardLayout容器中時(shí)需調(diào)用
方法:
add(Compon一ntcomp,Stringname)
管CardLayout的構(gòu)造方法:
-publicCardLayout()
-publicCardLayout(inthgap,intvgap)
例11-11CardLayout
源代碼運(yùn)行
11.5基本Swing組件
wll.5.1面板
斤11.5.2標(biāo)簽與按鈕
斤11.5.3文本字段與文本區(qū)域
面1154復(fù)選框與單選按鈕
行11.5.5列表框與組合框
11.5.1面板lava
卡面板是用來容納組件的容器,它不能獨(dú)
立存在,只能添加到其他容器中。
口面板是JPan一1類的對(duì)象。
小面板的默認(rèn)布局器是FlowLayout,它
可以直接容納組件。
例11-12面板
源代碼運(yùn)行
11.5.2按鈕與標(biāo)簽
JButton(按鈕)的構(gòu)造方法:
-publicJButton()
//創(chuàng)建一個(gè)沒有標(biāo)記的空按鈕
-publicJButton(Iconicon)
//創(chuàng)建一個(gè)標(biāo)有指定圖標(biāo)的按鈕
-publicJButton(Stringt一xt)
〃創(chuàng)建一個(gè)標(biāo)有指定文字的按鈕
-publicJButton(Stringt一xt,工conicon)
〃創(chuàng)建一個(gè)標(biāo)有指定文字和圖標(biāo)的按鈕
11.5.2按鈕與標(biāo)簽(續(xù))
AbstractButton(JButton的父類):
publicvoidaddActionListener(ActionListener1)
publicIcongetlcon()
publicvoidseticon(Icondefaultlcon)
publicStringgetText()
publicvoidsetText(Stringtext)
publicvoidsetEnabled(booleanb)
publicvoidsetHorizontalAlignment(intalignment)
publicvoidsetverticalAlignment(intalignment)
publicvoidsetHorizontalTextPosition(int
textPosition)
publicvoids一tV一rticalTextPosition(int
textPosition)
11.5.2按鈕與標(biāo)簽(續(xù))
b操作按鈕可以產(chǎn)生多種事件,不過程序
通常只需響應(yīng)點(diǎn)擊按鈕時(shí)產(chǎn)生的動(dòng)作事
件(Activ一Ev一nt)。
11.5.2按鈕與標(biāo)簽(續(xù))ava
JLabel(標(biāo)簽)的構(gòu)造方法:
-publicJLab一1()
-publicJLabel(Iconimag一)
-publicJLab一1(Iconimag一,int
horizontaiAlignment)
-publicJLabel(Stringt一xt)
-publicJLabel(Stringt一xt,int
horizontalAlignment)
-publicJLabel(Stringt一xt,Icon
icon,inthorizontalAIignm一nt)
11.5.2按鈕與標(biāo)簽(續(xù))lava
行標(biāo)簽不會(huì)引發(fā)任何事件。
-程序中可以調(diào)用相應(yīng)的方法返回或設(shè)置標(biāo)簽
上的文字或圖標(biāo)、文字和圖標(biāo)的對(duì)齊方式及
文字與圖標(biāo)的相對(duì)位置等。
例11-13按鈕與標(biāo)簽
源代碼運(yùn)行
11.5.3文本字段與文本區(qū)域
-文本字段與文本區(qū)域都是允許用戶輸入
字符的區(qū)域。
行文本字段只允許用戶輸入一行字符,而
文本區(qū)域允許用戶輸入多行字符。
1153文本字段與文本區(qū)域(續(xù))
JTextField(文本字段)的構(gòu)造方法:
-publicJT一xtFi一ld()
//創(chuàng)建一個(gè)文本字段,初始字符串為空,列數(shù)為0
-publicJT一xtFi一Id(Stringt一xt)
//創(chuàng)建一個(gè)文本字段,初始字符串為text,列數(shù)為0
-publicJTextField(intcolumns)
//創(chuàng)建一個(gè)文本字段,初始字符串為空,列數(shù)為columns
-publicJT一xtFi一Id(Stringt一xt,int
columns)
//創(chuàng)建一個(gè)文本字段,初始字符串為text,列數(shù)為columns
幺
1153文本字段與文本區(qū)域(續(xù))ava
JTextField:
publicvoidaddActionList一n一r(
ActionList一n一r1)
//注冊(cè)動(dòng)作事件監(jiān)聽器
publicintg一tColumns()
〃返回文本字段的列數(shù)
publicvoids一tColumns(intcolumns)
//設(shè)置文本字段的列數(shù)
publicvoids一tFont(Fontf)
//設(shè)置文本字段中文字的字體
在文本字段中按回車鍵會(huì)引發(fā)ActionEv一nt
事件。
1153文本字段與文本區(qū)域(續(xù))ava
JTextArea(文本區(qū)域)的構(gòu)造方法:
-publicJT一xtAr一a()
//創(chuàng)建一個(gè)文本區(qū)域,初始字符串為空,行、列數(shù)為0
-publicJT一xtAr一a(Stringt一xt)
//創(chuàng)建一個(gè)文本區(qū)域,初始字符串為text,行、列數(shù)為0
-publicJTextArea(introwsrint
columns)
//創(chuàng)建一個(gè)文本區(qū)域,初始字符串為空,行數(shù)為rows,列
//數(shù)為columns
-publicJT一xtAr一a.(Stringt一xt,int
rows,intcolumns)
//創(chuàng)建一個(gè)文本區(qū)域,初始字符串為text,行數(shù)為rows,列
//數(shù)為columns
1153文本字段與文本區(qū)域(續(xù))
夕TextArea:
publicvoidappend(Stringstr)
//將字符串str添加到文本的尾部
publicvoidr一pla。一Rang一(String
str,intstart,intend)
//用字符串str替換文本中從start到end位置的字符
publicvoidinsert(Stringstrzint
pos)
//將字符串Str插入到文本中的指定位置pos
publicintg一tRows()
//返回文本區(qū)域的行數(shù)
publicvoids一tRows(introws)
//設(shè)置文本區(qū)域的行數(shù)
1153文本字段與文本區(qū)域(續(xù))
夕與文本字段不同,文本區(qū)域不會(huì)引發(fā)
ActionEv一nt事件。
例11.14文本字段與文本區(qū)域
源代碼運(yùn)行
11.5.4復(fù)選框與單選按鈕
用復(fù)選框是一個(gè)很小的方框,方框旁邊可
以標(biāo)有文字或圖標(biāo)。它有兩種狀態(tài):被
選或未被選。用戶點(diǎn)擊某個(gè)復(fù)選框時(shí),
該復(fù)選框會(huì)從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀
o
1154復(fù)選框與單選按鈕(續(xù))
JCheckBox(復(fù)選框)的構(gòu)造方法:
-publicJCheckBox()
-publicJCheckBox(Iconicon)
-publicJCheckBox(Iconicon,bool一an
s一1一ct一d)
-publicJCh一ckBox(Stringt一xt)
一publicJCheckBox(Stringt一xt,bool一an
s一1一ct一d)
-publicJCheckBox(Stringt一xt,Icon
icon)
-publicJCheckBox(Stringt一xt,Icon
icon,boo工一ans一1一ct一d)
1154復(fù)選框與單選按鈕(續(xù))lava
復(fù)選框的狀態(tài)可以調(diào)用下述方法來獲取或設(shè)
定:
publicbool一anisS一1一ct一d()
publicvoids一tS一1一ct一d(bool一anb)
點(diǎn)擊復(fù)選框會(huì)引發(fā)Activ一Ev一nt和
工t一mEv一nt事件。
11-15復(fù)選框
源代碼運(yùn)行
1154復(fù)選框與單選按鈕(續(xù))
卡單選按鈕是一個(gè)很小的圓,圓旁邊可以標(biāo)有
文字或圖標(biāo)。與復(fù)選框相同,每個(gè)單選按鈕
有兩種狀態(tài):被選或未被選。用戶點(diǎn)擊某個(gè)
單選按鈕時(shí),該單選按鈕會(huì)從一種狀態(tài)轉(zhuǎn)變
為另一種狀態(tài)。與復(fù)選框不同的是,在某一
時(shí)刻同一組中的單選按鈕只有一個(gè)被選擇,
選擇某個(gè)單選按鈕時(shí),同一組中的其他單選
按鈕都會(huì)變?yōu)槲幢贿x;而同一組中的復(fù)選框
同時(shí)可以有o個(gè)、1個(gè)或多個(gè)被選。
1154復(fù)選框與單選按鈕(續(xù))
罰JRadioButton(單選按鈕)的構(gòu)造方法:
-publicJRadioButton()
-publicJRadioButton(Iconicon)
-publicJRadioButton(Icon
icon,booleans一1一ct一d)
-publicJRadioButton(Stringt一xt)
-publicJRadioButton(String
text,booleans一工一ct一d)
-publicJRadioButton(Stringtext,Icon
icon)
-publicJRadioButton(Stringt一xt,Icon
icon,booI一anselected)
1154復(fù)選框與單選按鈕(續(xù))
團(tuán)創(chuàng)建單選按鈕后,通常需要將它們歸屬到某
個(gè)組:
(1)首先倉(cāng)Li建javax.swing.ButtonGroup類
的對(duì)象;
(2)調(diào)用ButtonGroup類中定義的方法
add(AbstractButtonb)將單選按鈕添力口至U該
對(duì)象中。
注意:添力口至1J同一ButtonGroup對(duì)象中的單選
按鈕屬于同一組,同時(shí)只能選擇其中之一。
1154復(fù)選框與單選按鈕(續(xù))
行點(diǎn)擊單選按鈕會(huì)弓I發(fā)Activ一Ev一nt和
工t一!nEv一nt事件。
例11-16單選按鈕
源代碼運(yùn)行
11.5.5組合框與列表
卡組合框也稱下拉式列表,它是一些項(xiàng)目
的簡(jiǎn)單列表。與單選按鈕類似,用戶可
以從中選擇一個(gè)。
11.5.5組合框與列表(續(xù))
罰JComboBox(組合框)的構(gòu)造方法:
-publicJComboBox()
//創(chuàng)建一個(gè)組合框,組合框中的選項(xiàng)為空
-publicJComboBox(Object[]items)
//創(chuàng)建一個(gè)組合框,組合框中的選項(xiàng)由參數(shù)it一ms指定
0
J■-J
n.5.5組合框與列表(續(xù))lava
-組合框中的選項(xiàng)可以調(diào)用下述方法添加或刪除:
publicvoidadd工t一m(Obj一ctanObject)
//在組合框中添加一個(gè)選項(xiàng)anObject
publicvoidr一mov一工t一m(Obj一ct
anObj一ct)
//在組合框中刪除參數(shù)anObject指定的選項(xiàng)
publicvoidr一mov一工t一mAt(intanlndex)
//在組合框中刪除序號(hào)為參數(shù)anlndex的選項(xiàng)
publicvoidr一mov一All工t一ms()
//刪除組合框中的所有選項(xiàng)
0
J■-J
n.5.5組合框與列表(續(xù))lava
卡調(diào)用下述方法可以獲取組合框中特定的
選項(xiàng):
publicObjectg一t工t一mAt(intindex)
〃返回組合框中序號(hào)為參數(shù)index的選項(xiàng)
publicintg一tS一1一ct一d工nd一x()
〃返回組合框中被選擇的選項(xiàng)的序號(hào)
publicObj一ctg一tS一1一ct一d工t一m()
//返回組合框中被選擇的選項(xiàng)
11.5.5組合框與列表(續(xù))
b選定組合框中的選項(xiàng)會(huì)引發(fā)
例11-17組合框
源代碼運(yùn)行
0
J■-J
n.5.5組合框與列表(續(xù))lava
卡列表允許用戶從中進(jìn)行選擇。不過,它與組
合框的外觀不同:組合框只有在點(diǎn)擊它時(shí)才
會(huì)顯示下拉列表,而列表會(huì)在屏幕上持續(xù)占
用固定行數(shù)的空間。此外,列表還允許用戶
同時(shí)選擇多項(xiàng):用戶在多個(gè)選項(xiàng)上同時(shí)按下
<Ctrl>鍵并點(diǎn)擊鼠標(biāo),就可以選擇任意多項(xiàng),
如果選擇某個(gè)選項(xiàng)后,按下<Shift>鍵并同時(shí)
點(diǎn)擊另一個(gè)選項(xiàng),那么兩個(gè)選項(xiàng)間的所有選
項(xiàng)都被選擇;如果想取消某個(gè)選項(xiàng),只需按
下<Ctrl>鍵并同時(shí)點(diǎn)擊該項(xiàng)。
11.5.5組合框與列表(續(xù))
罰JList(列表)的構(gòu)造方法:
-publicJList()
//創(chuàng)建一個(gè)列表,列表中的選項(xiàng)為空
-publicJList(Object[]listData)
//創(chuàng)建一個(gè)列表,列表中的選項(xiàng)由參數(shù)listData指定
0
J■-J
n.5.5組合框與列表(續(xù))lava
-調(diào)用下述方法可以獲取列表中特定的選項(xiàng)或
設(shè)置可見行數(shù):
publicint[]g一tS一1一ct一d工ndi。一s()
//返回列表中所有被選擇的選項(xiàng)的序號(hào)
publicObj一ct口g一tS一1一ct一dValu一s()
//返回列表中所有被選擇的選項(xiàng)
publicvoids一tVisibl一RowCount(int
visib1一RowCount)
//設(shè)置列表中同時(shí)可見的行數(shù)為visibleRowCount,默認(rèn)值
〃為8
11.5.5組合框與列表(續(xù))
b選定列表中的選項(xiàng)會(huì)引發(fā)
例11-18列表
源代碼運(yùn)行
11.6高級(jí)Swing組件
年11.6.1菜單
團(tuán)1L6.2彈出式菜單
-11.6.3滑塊與進(jìn)度條
行11.6.4消息對(duì)話框
11.6.1菜單
*JM一nuBar
JM一nu
JM一nu工t■一m
審JCh一ckBoxM一nu工t一m
*JRadioButtonM一nu工t一m
11.6.1菜單(續(xù))lava
,實(shí)現(xiàn)菜單的過程:
1)創(chuàng)建菜單欄,并將它設(shè)置到某個(gè)容器中:
JM一nuBarmb=MwJMenuBar();
JFrameJFram一();
fram一.s一tJM一nuBar(mb);
11.6.1菜單(續(xù))lava
,實(shí)現(xiàn)菜單的過程:
2)創(chuàng)建菜單條,并將它們添加到菜單欄中:
JM一nufile]Ytenu=n,wJM一nu("文件”);
JM一nu一ditM一nu=newJM一nu("編輯”);
mb.add(fil一M一nu);
mb.add(一ditM一nu);
11.6.1菜單(續(xù))lava
,實(shí)現(xiàn)菜單的過程:
3)創(chuàng)建菜單項(xiàng),并將它們添加到菜單條中:
JM一nu工t一m[]一ditm={
newJM一nu工t一m("剪切”),
newJM一nu工t一m("復(fù)制J"),
n一wJMenuItem("粘貝占”),
n一wJM一nu工t一m("全選”)};
for(inti=0;i—ditm.1一ngth;i++){
一ditM一nu.add(一ditm[i]);
if(i==2)
一ditM一nu,adds一parator();}
11.6.1菜單(續(xù))
bJCheckBoxMenuItem^O
JRadioButtonMenuItemtfe
甘JM一nu是JM一nu工t一m的子類,因止匕,菜單條組件
可以添加到另一個(gè)菜單條中,從而實(shí)現(xiàn)多重子菜
單。
11.6.1菜單(續(xù))
e選定菜單項(xiàng)組件會(huì)弓I發(fā)Activ一Ev一nt
和工t一mEv一nt等事件。
例11-19菜單
源代碼運(yùn)行
n62彈出式菜單
卡彈出式菜單是一個(gè)小窗口,其中含有多
個(gè)菜單項(xiàng)。它通常用于和某個(gè)組件結(jié)合,
使該組件在某種條件下彈出一個(gè)菜單。
11.6.2彈出式菜單(續(xù))lava
JPopupM一nupopup=newJPopupM一nu();
JM一nu工t一m口popupm=MwJM一nu工t一m(“剪切”);
popup.add(popupm);
1162彈出式菜單(續(xù))
-彈出式菜單應(yīng)和某個(gè)組件結(jié)合,以使用戶在該組件上
按下鼠標(biāo)右鍵時(shí)將它顯現(xiàn)出來。因此,程序應(yīng)該監(jiān)聽
希望能彈出菜單的組件的鼠標(biāo)事件(MouseEvent)
并在相關(guān)方法中調(diào)用JPopupM一nu類中的下述方法將
彈出式菜單顯現(xiàn)出來:
publicvoidshow(Compon一ntinvok一r,intxfinty)
例11-20彈出式菜單
源代碼運(yùn)行
n.6.3滑塊與進(jìn)度條
卡滑塊允許用戶通過移動(dòng)一個(gè)點(diǎn)的方式在
一定范圍內(nèi)輸入數(shù)據(jù)。
行進(jìn)度條通常用來顯示某件工作完成的百
分比。
1163滑塊與進(jìn)度條(續(xù))ava
罰JSlider(滑塊)的構(gòu)造方法:
-publicJSlider()
-publicJSlider(intorientation)
-publicJSlid一r(intmin,intmax)
-publicJSlid一r(intmin,intmax,int
value)
-publicJSlider(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年春七年級(jí)語文下冊(cè) 第三單元 12 賣油翁說課稿 新人教版
- 12古詩(shī)三首《己亥雜詩(shī)》說課稿-2024-2025學(xué)年語文五年級(jí)上冊(cè)統(tǒng)編版
- 15 分享真快樂(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治 一年級(jí)下冊(cè)001
- 2025裝修工程泥工承包合同
- 7讓弦發(fā)出高低不同的聲音 說課稿-2024-2025學(xué)年科學(xué)四年級(jí)上冊(cè)教科版
- 2024-2025學(xué)年高中歷史 專題四 王安石變法 一 積貧積弱的北宋教學(xué)說課稿 人民版選修1
- 14 請(qǐng)幫我一下吧 第一課時(shí) 說課稿-2023-2024學(xué)年道德與法治一年級(jí)下冊(cè)統(tǒng)編版
- 6我們神圣的國(guó)土 第1課時(shí)(說課稿)-部編版道德與法治五年級(jí)上冊(cè)
- 2023八年級(jí)英語下冊(cè) Module 1 Feelings and impressions Unit 2 I feel nervous when I speak Chinese第三課時(shí)說課稿 (新版)外研版
- 2024-2025學(xué)年新教材高中語文 第二單元 6.2 文氏外孫入村收麥說課稿(3)部編版必修上冊(cè)
- 廣東省廣州黃埔區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試卷(含答案)
- 法理學(xué)課件馬工程
- 《無菌檢查培訓(xùn)》課件
- 2024-2030年中國(guó)香菇行業(yè)銷售狀況及供需前景預(yù)測(cè)報(bào)告
- 高中英語必背3500單詞表(完整版)
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 禁止送禮的協(xié)議書
- 2024年版《輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(cè)》
- 2024年高考數(shù)學(xué)試卷(北京)(空白卷)
- 2024從洞見到生意:阿里健康特色人群消費(fèi)趨勢(shì)報(bào)告-阿里健康x一財(cái)商學(xué)院
- 《2023-2024中國(guó)區(qū)塊鏈發(fā)展年度報(bào)告》
評(píng)論
0/150
提交評(píng)論