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

下載本文檔

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

最新文檔

評(píng)論

0/150

提交評(píng)論