Java桌面程序開發(fā)第5章-使用Swing常用組件_第1頁(yè)
Java桌面程序開發(fā)第5章-使用Swing常用組件_第2頁(yè)
Java桌面程序開發(fā)第5章-使用Swing常用組件_第3頁(yè)
Java桌面程序開發(fā)第5章-使用Swing常用組件_第4頁(yè)
Java桌面程序開發(fā)第5章-使用Swing常用組件_第5頁(yè)
已閱讀5頁(yè),還剩93頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Java桌面程序開發(fā)

目錄第1章認(rèn)識(shí)Java桌面程序第2章開發(fā)第一個(gè)Java桌面程序第3章事件處理機(jī)制第4章容器與布局第5章使用Swing常用組件第6章使用Swing高級(jí)組件第7章連上DB的Java桌面程序第8章

Java桌面程序?qū)嵗郝?lián)系人管理第5章使用Swing常用組件教學(xué)要求

1.掌握:Swing各種常用組件的使用,包括圖形用戶界面所需要的基本組件、選擇型組件,菜單等的創(chuàng)建和使用2.理解:工具欄的創(chuàng)建,對(duì)話框的創(chuàng)建和使用5.1 GUI的基本元素:標(biāo)簽、按鈕、文本框1.JLabelJLabel類是一個(gè)用來顯示文本的類,文本就是一個(gè)字符串。在程序中指定要顯示的字符串,但該字符串在運(yùn)行時(shí)不能被用戶修改標(biāo)簽不對(duì)輸入事件作出反應(yīng)。因此,它無法獲得鍵盤焦點(diǎn)。JLabel對(duì)象還可以顯示圖像或同時(shí)顯示文本與圖像二者??梢酝ㄟ^設(shè)置垂直和水平對(duì)齊方式,指定標(biāo)簽顯示區(qū)中標(biāo)簽內(nèi)容在何處對(duì)齊。JLabel的構(gòu)造方法:JLabel():創(chuàng)建無圖像并且其標(biāo)題為空字符串的JLabel。

JLabel(Iconimage):創(chuàng)建具有指定圖像的JLabel實(shí)例。

JLabel(Iconimage,inthorizontalAlignment):創(chuàng)建具有指定圖像和水平對(duì)齊方式的JLabel實(shí)例。

JLabel(Stringtext):創(chuàng)建具有指定文本的JLabel實(shí)例。

JLabel(Stringtext,Iconicon,inthorizontalAlignment):創(chuàng)建具有指定文本、圖像和水平對(duì)齊方式的JLabel實(shí)例。

JLabel(Stringtext,inthorizontalAlignment):創(chuàng)建具有指定文本和水平對(duì)齊方式的JLabel實(shí)例。其中,參數(shù)text設(shè)置標(biāo)簽文本,icon設(shè)置標(biāo)簽圖標(biāo),horizontalAlignment用于指定標(biāo)簽內(nèi)容的水平對(duì)齊方式。horizontalAlignment的取值為JLabel從SwingConstants繼承來的幾個(gè)靜態(tài)常量:LEFT、CENTER、RIGHT、LEADINGTRAILINGJLabel類的常用方法:

StringgetText():返回該標(biāo)簽所顯示的文本字符串。

voidsetText(Stringtext):定義此組件將要顯示的單行文本。

IcongetIcon():返回該標(biāo)簽顯示的圖形圖像(字形、圖標(biāo))。

voidsetIcon(Iconicon):定義此組件將要顯示的圖標(biāo)。

intgetIconTextGap():返回此標(biāo)簽中顯示的文本和圖標(biāo)之間的間隔量。

voidsetIconTextGap(inticonTextGap):如果同時(shí)設(shè)置了圖標(biāo)和文本屬性,則此屬性定義它們之間的間隔。

intgetHorizontalAlignment():返回標(biāo)簽內(nèi)容沿X軸的對(duì)齊方式。

intgetVerticalAlignment():返回標(biāo)簽內(nèi)容沿Y軸的對(duì)齊方式。

voidsetLabelFor(Componentc):設(shè)置將標(biāo)簽添加到的組件。2.JButtonJButton類是使用最多的一個(gè)組件,可以用來創(chuàng)建帶標(biāo)簽的按鈕,可完成用戶想要完成的一些功能。JButton的構(gòu)造方法:JButton():創(chuàng)建不帶有設(shè)置文本或圖標(biāo)的按鈕。

JButton(Actiona):創(chuàng)建一個(gè)按鈕,其屬性從所提供的Action中獲取。

JButton(Iconicon):創(chuàng)建一個(gè)帶圖標(biāo)的按鈕。

JButton(Stringtext):創(chuàng)建一個(gè)帶文本的按鈕。

JButton(Stringtext,Iconicon):創(chuàng)建一個(gè)帶初始文本和圖標(biāo)的按鈕。JButton的基本方法:voidsetText(Stringtext):設(shè)置按鈕的文本

StringgetText():返回按鈕的文本

voidsetIcon(IcondefaultIcon):設(shè)置按鈕的默認(rèn)圖標(biāo)

booleanisSelected():返回按鈕的狀態(tài)

voidsetSelected(booleanb):設(shè)置按鈕的狀態(tài)

voidsetSelectedIcon(IconselectedIcon):設(shè)置按鈕的選擇圖標(biāo)

3.JTextFieldSwing中與文字輸入有關(guān)的組件主要包括JTextField、JTextArea、JPasswordField和JTextPane,其中JTextField、JPasswordField是單行的文本輸入組件,JTextArea是多行的文本輸入組件,JTextPane可以設(shè)置其中文本的格式,它們都繼承自JTextComponent類。JTextField類用來創(chuàng)建允許用戶編輯的單行文本組件。用戶可以通過這類組件輸入和編輯字符串信息。JTextField與JLabel的本質(zhì)差別是,程序運(yùn)行時(shí),JTextField可以獲得焦點(diǎn),而JLabel不能。JTextField可用作程序的輸入。JTextField的構(gòu)造方法:JTextField():構(gòu)造一個(gè)新的TextField。

JTextField(Documentdoc,Stringtext,intcolumns):構(gòu)造一個(gè)新的JTextField,它使用給定文本存儲(chǔ)模型和給定的列數(shù)。

JTextField(intcolumns):構(gòu)造一個(gè)具有指定列數(shù)的新的空TextField。

JTextField(Stringtext):構(gòu)造一個(gè)用指定文本初始化的新TextField。

JTextField(Stringtext,intcolumns):構(gòu)造一個(gè)用指定文本和列初始化的新TextField。JTextField的常用方法:voidsetText(Stringt):將此TextField文本設(shè)置為指定文本voidgetText(Stringt):獲取此TextField的文本voidsetFont(Fontf):設(shè)置當(dāng)前字體

voidsetHorizontalAlignment(intalignment)設(shè)置文本的水平對(duì)齊方式。5.1.1看看效果例5-1:使用了標(biāo)簽,文本框和按鈕這些常用元素例5-2JLabel的簡(jiǎn)單應(yīng)用例5-3JButton的簡(jiǎn)單應(yīng)用例5-4JTextField的簡(jiǎn)單應(yīng)用5.1.2在標(biāo)簽JLabel中使用圖像JLabel控件除了可以用于在窗體上顯示文字之外,還可以用來顯示圖片。顯示圖片需要用到ImageIcon類創(chuàng)建的對(duì)象。ImageIcon類,一個(gè)Icon接口的實(shí)現(xiàn),它根據(jù)Image繪制Icon??墒褂肕ediaTracker預(yù)載根據(jù)URL、文件名或字節(jié)數(shù)組創(chuàng)建的圖像,以監(jiān)視該圖像的加載狀態(tài)。ImageIcon類的構(gòu)造方法:ImageIcon():創(chuàng)建一個(gè)未初始化的圖像圖標(biāo)。

ImageIcon(Imageimage):根據(jù)圖像對(duì)象創(chuàng)建一個(gè)ImageIcon。

ImageIcon(Stringfilename):根據(jù)指定的文件創(chuàng)建一個(gè)

ImageIconImageIcon(URLlocation):根據(jù)指定的URL創(chuàng)建一個(gè)ImageIcon。

ImageIcon(URLlocation,Stringdescription):根據(jù)指定的URL創(chuàng)建一個(gè)

ImageIcon實(shí)例例5-5制作了一個(gè)利用JLabel顯示圖片的窗體5.1.3帶圖標(biāo)Icon的按鈕JButton除了JLabel標(biāo)簽上可以使用圖標(biāo),JButton也可以添加圖標(biāo)

例5-6,設(shè)置了按鈕的圖標(biāo),并設(shè)置的按鈕名字和圖標(biāo)的相對(duì)位置5.1.4使用密碼框JPasswordField密碼文本框是用來輸入密碼的文本框。密碼框繼承單行文本框,所以密碼框只顯示單行輸入框。但是,與單行文本框不同的是,密碼框輸入的文字將不會(huì)正常顯示出來,而是使用其它字符代替。可以通過調(diào)用setEchoChar(charc)來更改顯示字符。密碼框的作用是防止別人看到所輸入的文字信息。JPasswordField的構(gòu)造方法:JPasswordField():構(gòu)造一個(gè)新JPasswordField,使其具有默認(rèn)文檔、為null的開始文本字符串和為0的列寬度。

JPasswordField(intcolumns):構(gòu)造一個(gè)具有指定列數(shù)的新的空J(rèn)PasswordField。

JPasswordField(Stringtext):構(gòu)造一個(gè)利用指定文本初始化的新JPasswordField。

JPasswordField(Stringtext,intcolumns):構(gòu)造一個(gè)利用指定文本和列初始化的新JPasswordField。JPasswordField的常用方法:voidsetEchoChar(charc):設(shè)置此JPasswordField的回顯字符。chargetEchoChar():返回要用于回顯的字符。

booleanechoCharIsSet():如果此JPasswordField具有為回顯設(shè)置的字符,則返回true。

char[]getPassword():返回此TextComponent中所包含的文本。實(shí)例例5-7密碼框JPasswordField的使用例5-8密碼字段的鍵盤事件例5-9監(jiān)聽JPasswordField的ActionEvent事件5.2 使用文本區(qū)組件JTextArea多行文本框用來編輯多行文本,進(jìn)行大量的文字編輯處理多行文本框可以在內(nèi)部處理滾動(dòng),具有換行能力JTextArea的構(gòu)造方法:JTextArea():構(gòu)造新的TextArea。

JTextArea(introws,intcolumns):構(gòu)造具有指定行數(shù)和列數(shù)的新的空TextArea。

JTextArea(Stringtext):構(gòu)造顯示指定文本的新的TextArea。

JTextArea(Stringtext,introws,intcolumns):構(gòu)造具有指定文本、行數(shù)和列數(shù)的新的TextArea。JTextArea的常用方法voidappend(Stringstr):將給定文本追加到文檔結(jié)尾。

voidsetColumns(intcolumns):設(shè)置此TextArea中的列數(shù)。

voidsetRows(introws):設(shè)置此TextArea的行數(shù)。

intgetLineCount():確定文本區(qū)中所包含的行數(shù)。

voidinsert(Stringstr,intpos):將指定文本插入指定位置。

voidsetFont(Fontf):設(shè)置當(dāng)前字體。

voidsetWrapStyleWord(booleanword):設(shè)置換行方式(如果文本區(qū)要換行)。實(shí)例例5-10使用JTextArea例5-11從一個(gè)文本區(qū)復(fù)制選中的文字到另一個(gè)文本區(qū)5.3 選擇型組件Java提供了很多的選擇型組件,用戶可通過單擊選定,免去了輸入文本的麻煩。常用的選項(xiàng)組件有單選框,復(fù)選框,列表框,組合列表框等。1.JCheckBox(復(fù)選框)類JCheckBox類繼承JToggleButton類,而JToggleButton類實(shí)現(xiàn)一個(gè)反選按鍵,只有按下和釋放兩種狀態(tài)。復(fù)選框也有類似功能,只有選擇和不選擇兩種狀態(tài),而且復(fù)選框可由多個(gè)按鈕組成一個(gè)組群。JCheckBox的構(gòu)造方法:JCheckBox(Iconicon):創(chuàng)建有一個(gè)圖標(biāo)、最初未被選定的復(fù)選框。

JCheckBox(Iconicon,booleanselected):創(chuàng)建一個(gè)帶圖標(biāo)的復(fù)選框,并指定其最初是否處于選定狀態(tài)。

JCheckBox(Stringtext):創(chuàng)建一個(gè)帶文本的、最初未被選定的復(fù)選框

JCheckBox(Stringtext,booleanselected):創(chuàng)建一個(gè)帶文本的復(fù)選框,并指定其最初是否處于選定狀態(tài)。

JCheckBox類的常用方法:voidsetText(Stringtext):設(shè)置按鈕的文本。

StringgetText():返回按鈕的文本

voidsetSelected(booleanb):設(shè)置按鈕的狀態(tài)。

booleanisSelected():返回按鈕的狀態(tài)。

JCheckBox類的常用方法和JRadionButton類的常用方法基本一樣2.JRadioButton(單選按鈕)類單選按鈕只能在其組群內(nèi)選擇一個(gè),使用這個(gè)類可以定義單選按鈕。為單選按鈕分類,必須用到類ButtonGroup。這個(gè)類的主要功能是:同一時(shí)間內(nèi)只會(huì)有一個(gè)組件的狀態(tài)為“on”。例如:性別選項(xiàng),“男”、“女”二選一JRadioButtonjrbtn1=new

JRadioButton(“男”);JRadioButtonjrbtn2=newJRadioButton(“女”);ButtonGroupbg=newButtonGroup();bg.add(jrbtn1);bg.add(jrbtn2);JRadioButton的構(gòu)造方法JRadioButton(Iconicon):創(chuàng)建一個(gè)初始化為未選擇的單選按鈕,其具有指定的圖像但無文本。

JRadioButton(Iconicon,booleanselected):創(chuàng)建一個(gè)具有指定圖像和選擇狀態(tài)的單選按鈕,但無文本。

JRadioButton(Stringtext):創(chuàng)建一個(gè)具有指定文本的狀態(tài)為未選擇的單選按鈕。

JRadioButton(Stringtext,booleanselected):創(chuàng)建一個(gè)具有指定文本和選擇狀態(tài)的單選按鈕。

3.JComboBox(下拉列表框)類JComboBox是將按鈕或可編輯字段與下拉列表組合的組件。用戶可以從下拉列表中選擇值,下拉列表在用戶請(qǐng)求時(shí)顯示。如果使組合框處于可編輯狀態(tài),則組合框?qū)ㄓ脩艨稍谄渲墟I入值的可編輯字段。JComboBox的構(gòu)造方法:JComboBox():創(chuàng)建具有默認(rèn)數(shù)據(jù)模型的JComboBox。

JComboBox(ComboBoxModelaModel):創(chuàng)建一個(gè)JComboBox,其項(xiàng)取自現(xiàn)有的ComboBoxModel中。

JComboBox(Object[]items):創(chuàng)建包含指定數(shù)組中的元素的JComboBox。

JComboBox(Vector<?>items):創(chuàng)建包含指定Vector中的元素的JComboBox。JComboBox類的常用方法voidaddItem(ObjectanObject):為項(xiàng)列表添加項(xiàng)。

voidinsertItemAt(ObjectanObject,intindex):在項(xiàng)列表中的給定索引處插入項(xiàng)。

ObjectgetItemAt(intindex):返回指定索引處的列表項(xiàng)。

ObjectgetSelectedItem():返回當(dāng)前所選項(xiàng)。

Object[]getSelectedObjects():返回包含所選項(xiàng)的數(shù)組。

intgetItemCount():返回列表中的項(xiàng)數(shù)。

voidsetSelectedItem(ObjectanObject):將組合框顯示區(qū)域中所選項(xiàng)設(shè)置為參數(shù)中的對(duì)象。4.JList(列表框)類該組件允許用戶從列表中選擇一個(gè)或多個(gè)對(duì)象。JList的各個(gè)項(xiàng)目是放在單個(gè)列表框中,通過單擊選項(xiàng)本身來選定??梢酝ㄟ^設(shè)置,允許對(duì)列表中的項(xiàng)目進(jìn)行多項(xiàng)選擇。JList不支持自動(dòng)滾動(dòng)功能,若要實(shí)現(xiàn)該功能,需要將JList添加到JScrollPane中。JList的構(gòu)造方法:JList():構(gòu)造一個(gè)使用空模型的JList。

JList(ListModeldataModel):構(gòu)造一個(gè)JList,使其使用指定的非null模型顯示元素。

JList(Object[]listData):構(gòu)造一個(gè)JList,使其顯示指定數(shù)組中的元素。

JList(Vector<?>listData):構(gòu)造一個(gè)JList,使其顯示指定Vector中的元素。JList類的常用方法:intgetSelectedIndex():返回所選的第一個(gè)索引;如果沒有選擇項(xiàng),則返回-1。

int[]getSelectedIndices():返回所選的全部索引的數(shù)組(按升序排列)。

ObjectgetSelectedValue():返回所選的第一個(gè)值,如果選擇為空,則返回null。

Object[]getSelectedValues():返回所選單元的一組值。

booleanisSelectedIndex(intindex):如果選擇了指定的索引,則返回true。

booleanisSelectionEmpty():如果什么也沒有選擇,則返回true。

voidsetSelectedIndex(intindex):選擇單個(gè)單元。

voidsetSelectedIndices(int[]indices):選擇一組單元。

voidsetSelectedValue(ObjectanObject,booleanshouldScroll):從列表中選擇指定的對(duì)象。

voidsetSelectionMode(intselectionMode):確定允許單項(xiàng)選擇還是多項(xiàng)選擇。

voidsetVisibleRowCount(intvisibleRowCount):設(shè)置不使用滾動(dòng)條可以在列表中顯示的首選行數(shù)。5.3.1看看效果例5-12選擇型組件的示例。Choose.java(1)本例中用到的組件較多,首先要注意各組件的擺放。(2)當(dāng)單擊前景色單選按鈕時(shí),可以改變字體的顏色。(3)單擊字型復(fù)選按鈕時(shí),可修改字型。(4)可以通過選擇字號(hào)下拉列表框中的字號(hào)改變字體大小。(5)可以通過選擇字體列表框改變字體。(6)單擊修改文字按鈕,可以通過一個(gè)輸入消息框,輸入新的內(nèi)容。(7)單擊退出按鈕,可退出本系統(tǒng),在退出之前,彈出消息框確認(rèn)是否退出。5.3.2使用單選按鈕JRadioButton例5-13單選按鈕示例例5-14JRadioButton組件的事件響應(yīng)5.3.3使用復(fù)選框JCheckBox例5-15JCheckBox的使用例5-16定制JCheckBox的標(biāo)記圖標(biāo)5.3.4使用下拉列表框JComboBox例5-17下拉列表框JComboBox的實(shí)例5.4 創(chuàng)建菜單菜單和工具欄幾乎是所有軟件中必備的組件,Swing包中有一系列專門用來創(chuàng)建菜單類的組件。5.4.1看看效果例5-18菜單設(shè)計(jì)舉例5.4.2認(rèn)識(shí)菜單及菜單組件JMenuBar,菜單條,是菜單容器組件JMenu是菜單,如文件菜單,編輯菜單等JMenuItem是菜單項(xiàng),如新建文件,打開文件等1.JMenuBar(菜單欄)JMenuBar是放置菜單的容器??梢酝ㄟ^JFrame類的setMenuBar()方法把JMenuBar對(duì)象加入一個(gè)框架中。JMenuBar類的構(gòu)造方法:JMenuBar():創(chuàng)建新的菜單欄。

JMenuBar的常用方法:JMenuadd(JMenuc):將指定的菜單追加到菜單欄的末尾。

voidsetSelected(Componentsel):設(shè)置當(dāng)前選擇的組件,更改選擇模型。

intgetMenuCount():返回菜單欄上的菜單數(shù)。

booleanisSelected():如果當(dāng)前已選擇了菜單欄的組件,則返回true。

JMenugetHelpMenu():獲取菜單欄的幫助菜單。

JMenugetMenu(intindex):返回菜單欄中指定位置的菜單。2.JMenu(菜單)JMenu是菜單欄上放置的菜單。每一個(gè)菜單由一些菜單項(xiàng)組成??梢酝ㄟ^JMenuBar類的add()方法,把JMenu對(duì)象放置在JMenuBar對(duì)象上(即設(shè)置菜單欄上的主菜單)。JMenu實(shí)際上是一個(gè)包含JMenuItem的彈出窗口,用戶選擇JMenuBar上的項(xiàng)時(shí)會(huì)顯示該窗口。除JMenuItem之外,JMenu還可以包含JSeparator,JSeparator是菜單上的分隔線。JMenu類的構(gòu)造方法

JMenu(Strings):構(gòu)造一個(gè)新JMenu,用提供的字符串作為其文本。

JMenu(Strings,booleanb):構(gòu)造一個(gè)新JMenu,用提供的字符串作為其文本并指定其是否為分離式(tear-off)菜單。

3.JMenuItem(菜單項(xiàng))所有菜單中的菜單項(xiàng)都是JMenuItem類或者其它的子類的對(duì)象??梢酝ㄟ^JMenu類的add()方法,把JMenuItem對(duì)象添加到JMenu對(duì)象上(即置菜單欄上某個(gè)主菜單的子菜單)。菜單項(xiàng)本質(zhì)上是位于列表中的按鈕。當(dāng)用戶選擇“按鈕”時(shí),將執(zhí)行與菜單項(xiàng)關(guān)聯(lián)的操作。JMenuItem的構(gòu)造方法:JMenuItem(Actiona):創(chuàng)建一個(gè)從指定的Action獲取其屬性的菜單項(xiàng)。

JMenuItem(Iconicon):創(chuàng)建帶有指定圖標(biāo)的JMenuItem。

JMenuItem(Stringtext):創(chuàng)建帶有指定文本的JMenuItem。

JMenuItem(Stringtext,Iconicon):創(chuàng)建帶有指定文本和圖標(biāo)的JMenuItem。

4.JCheckBoxMenuItem(復(fù)選框菜單項(xiàng))可以被選定或取消選定的菜單項(xiàng)。如果被選定,菜單項(xiàng)的旁邊通常會(huì)出現(xiàn)一個(gè)復(fù)選標(biāo)記。如果未被選定或被取消選定,菜單項(xiàng)的旁邊就沒有復(fù)選標(biāo)記。像常規(guī)菜單項(xiàng)一樣,復(fù)選框菜單項(xiàng)可以有與之關(guān)聯(lián)的文本或圖標(biāo),或者二者兼而有之。isSelected/setSelected或getState/setState都可以用來確定/指定菜單項(xiàng)的選擇狀態(tài)。首選方法是isSelected和setSelected,它們可用于所有菜單和按鈕。JCheckBoxMenuItem類的構(gòu)造方法

JCheckBoxMenuItem(Actiona):創(chuàng)建一個(gè)從所提供的Action中獲取其屬性的菜單項(xiàng)。

JCheckBoxMenuItem(Iconicon):創(chuàng)建有一個(gè)圖標(biāo)的、最初未被選定的復(fù)選框菜單項(xiàng)。

JCheckBoxMenuItem(Stringtext):創(chuàng)建一個(gè)帶文本的、最初未被選定的復(fù)選框菜單項(xiàng)。

JCheckBoxMenuItem(Stringtext,booleanb):創(chuàng)建具有指定文本和選擇狀態(tài)的復(fù)選框菜單項(xiàng)。

5.JPopupMenu(彈出菜單)JPopupMenu可實(shí)現(xiàn)彈出菜單,彈出菜單是一個(gè)可彈出并顯示一系列選項(xiàng)的小窗口。JPopupMenu用于用戶在菜單欄上選擇項(xiàng)時(shí)顯示的菜單。它還用于當(dāng)用戶選擇菜單項(xiàng)并激活它時(shí)顯示的“右拉式(pull-right)”菜單。JPopupMenu類的構(gòu)造方法:

JPopupMenu(Stringlabel):構(gòu)造一個(gè)具有指定標(biāo)題的JPopupMenu6.JSeparator(分隔符)JSeparator為實(shí)現(xiàn)分隔線提供了一個(gè)通用組件-通常用作菜單項(xiàng)之間的分隔符,以便將菜單項(xiàng)分成幾個(gè)邏輯組??梢允褂肑Menu或者JPopupMenu的addSeparator方法來創(chuàng)建和添加一個(gè)分隔符,而不是直接使用JSeparator。JSeparator還可能用于GUI中任何一個(gè)需要可視化分隔符的地方。

5.4.3實(shí)現(xiàn)菜單例5-19創(chuàng)建基本菜單的例子例5-20演示了如何給菜單添加快捷操作方式例5-21垂直菜單欄5.4.4實(shí)現(xiàn)級(jí)聯(lián)菜單例5-22級(jí)聯(lián)菜單5.4.5實(shí)例:簡(jiǎn)單記事本例5-23記事本的實(shí)現(xiàn)5.5 創(chuàng)建工具欄一般在設(shè)計(jì)軟件時(shí),會(huì)將所有功能以菜單項(xiàng)(也就是菜單命令)的形式分類放置在菜單中,但功能數(shù)量較多時(shí),對(duì)于一些頻繁進(jìn)行的操作用戶也總要去查找菜單才能實(shí)現(xiàn),這就增加了用戶操作的負(fù)擔(dān)。因此,可以將軟件中最常用的部分功能以工具欄中工具按鈕方式提供給用戶,這樣用戶操作起來就便捷多了。Swing中JToolBar類提供了工具欄的屬性和方法,用來放置各種常用功能命令的按鈕。JToolBar類的構(gòu)造方法:JToolBar():創(chuàng)建新的工具欄;默認(rèn)的方向?yàn)镠ORIZONTAL。

JToolBar(intorientation):創(chuàng)建具有指定orientation的新工具欄。

JToolBar(Stringname):創(chuàng)建一個(gè)具有指定name的新工具欄。

JToolBar(Stringname,intorientation):創(chuàng)建一個(gè)具有指定name和orientation的新工具欄。JToolBar類的常用方法:JButtonadd(Actiona):添加一個(gè)指派動(dòng)作的新的JButton。

voidaddSeparator(Dimensionsize):將指定大小的分隔符添加到工具欄的末尾。

voidsetFloatable(booleanb):設(shè)置floatable屬性,如果要移動(dòng)工具欄,此屬性必須設(shè)置為true。

5.5.1看看效果例5-24工具欄5.5.2實(shí)現(xiàn)工具欄例5-25簡(jiǎn)單的工具欄例5-26工具欄按鈕的工具提示5.5.3實(shí)例:給記事本加上工具欄5.6 實(shí)現(xiàn)對(duì)話框5.6.1Swing對(duì)話框JDialog對(duì)話框與框架(JFrame)有一些相似,但它一般是一個(gè)臨時(shí)的窗口,主要用于顯示提示信息或接受用戶輸入。所以,在對(duì)話框中一般不需要菜單條,也不需要改變窗口大小。此外,在對(duì)話框出現(xiàn)時(shí),可以設(shè)定禁止其他窗口的輸入,直到這個(gè)對(duì)話框被關(guān)閉。對(duì)話框分為無模式和有模式兩種如果一個(gè)對(duì)話框是有模式的對(duì)話框,那么當(dāng)這個(gè)對(duì)話框處于激活狀態(tài)時(shí),只讓程序響應(yīng)對(duì)話框內(nèi)部的事件,程序不能再激活它所依賴的窗口或組件,而且它將堵塞當(dāng)前線程的執(zhí)行,直到該對(duì)話框消失不可見。無模式對(duì)話框處于激活狀態(tài)時(shí),程序仍能激活它所依賴的窗口或組件,它也不堵塞線程的執(zhí)行。JDialog類的構(gòu)造方法

JDialog(Dialogowner):創(chuàng)建一個(gè)沒有標(biāo)題但將指定的Dialog作為其所有者的無模式對(duì)話框。

JDialog(Dialogowner,booleanmodal):創(chuàng)建一個(gè)沒有標(biāo)題但有指定所有者對(duì)話框的有模式或無模式對(duì)話框。

JDialog(Dialogowner,Stringtitle):創(chuàng)建一個(gè)具有指定標(biāo)題和指定所有者對(duì)話框的無模式對(duì)話框。

JDialog(Dialogowner,Stringtitle,booleanmodal):創(chuàng)建一個(gè)具有指定標(biāo)題和指定所有者對(duì)話框的有模式或無模式對(duì)話框。

實(shí)例例5-28JDialog對(duì)話框設(shè)計(jì)舉例5.6.2使用JOptionPaneJDialog類主要用來創(chuàng)建根據(jù)需要而定制的對(duì)話框,必須制作對(duì)話框中的每一個(gè)組件。但有時(shí)候我們可能只需要對(duì)話框顯示一些信息,或是進(jìn)行簡(jiǎn)單的輸入操作,Swing提供的JOptionPane這個(gè)簡(jiǎn)單標(biāo)準(zhǔn)對(duì)話框可以滿足這樣的需求。JOptionPane類提供了一些靜態(tài)方法用于顯示對(duì)話框,這些對(duì)話框都是模式的,主要包含4種類型:消息對(duì)話框、輸入對(duì)話框、確認(rèn)對(duì)話框和選項(xiàng)對(duì)話框。JOptionPane類的常用靜態(tài)調(diào)用方法方法名描述showConfirmDialog詢問一個(gè)確認(rèn)問題,如yes/no/cancel。showInputDialog提示要求某些輸入。showMessageDialog告知用戶某事已發(fā)生。showOptionDialog上述三項(xiàng)的大統(tǒng)一(GrandUnification)。staticintshowConfirmDialog(ComponentparentComponent,Objectmessage):調(diào)出帶有選項(xiàng)Yes、No和Cancel的對(duì)話框;標(biāo)題為SelectanOption。

staticintshowConfirmDialog(ComponentparentComponent,Objectmessage,Stringtitle,intoptionType):調(diào)出一個(gè)由optionType參數(shù)確定其中選項(xiàng)數(shù)的對(duì)話框。

staticintshowConfirmDialog(ComponentparentComponent,Objectmessage,Stringtitle,intoptionType,intmessageType):調(diào)用一個(gè)由optionType參數(shù)確定其中選項(xiàng)數(shù)的對(duì)話框,messageType參數(shù)確定要顯示的圖標(biāo)。

staticintshowConfirmDialog(ComponentparentComponent,Objectmessage,Stringtitle,intoptionType,intmessageType,Iconicon):調(diào)出一個(gè)帶有指定圖標(biāo)的對(duì)話框,其中的選項(xiàng)數(shù)由optionType參數(shù)確定。

staticStringshowInputDialog(Objectmessage):顯示請(qǐng)求用戶輸入的問題消息對(duì)話框。

staticvoidshowMessageDialog(ComponentparentComponent,Objectmessage):調(diào)出標(biāo)題為"Message"的信息消息對(duì)話框。

staticvoidshowMessageDialog(ComponentparentComponent,Objectmessage,Stringtitle,intmessageType):調(diào)出對(duì)話框,它顯示使用由messageType參數(shù)確定的默認(rèn)圖標(biāo)的message。

staticvoidshowMessageDialog(ComponentparentComponent,Objectmessage,Stringtitle,intmessageType,Iconicon):調(diào)出一個(gè)顯示信息的對(duì)話框,為其指定了所有參數(shù)。staticintshowOptionDialog(Componentparent

溫馨提示

  • 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)論