Java語(yǔ)言程序設(shè)計(jì)-基礎(chǔ)篇-中文ppt-第十七章_第1頁(yè)
Java語(yǔ)言程序設(shè)計(jì)-基礎(chǔ)篇-中文ppt-第十七章_第2頁(yè)
Java語(yǔ)言程序設(shè)計(jì)-基礎(chǔ)篇-中文ppt-第十七章_第3頁(yè)
Java語(yǔ)言程序設(shè)計(jì)-基礎(chǔ)篇-中文ppt-第十七章_第4頁(yè)
Java語(yǔ)言程序設(shè)計(jì)-基礎(chǔ)篇-中文ppt-第十七章_第5頁(yè)
已閱讀5頁(yè),還剩50頁(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)介

1第17章創(chuàng)建圖形用戶界面2動(dòng)因圖形用戶界面(GUI)可以使系統(tǒng)對(duì)用戶更友好且更易于使用。創(chuàng)建一個(gè)GUI需要?jiǎng)?chuàng)造性以及有關(guān)GUI組件如何工作的知識(shí)。在Java中,GUI組件非常靈活且功能多樣,因而可以創(chuàng)建各種各樣有用的用戶界面。前幾章簡(jiǎn)要介紹了一些GUI組件。本章詳細(xì)地介紹經(jīng)常會(huì)用到的GUI組件。

3學(xué)習(xí)目標(biāo)使用不同的用戶界面組件,例如:JButton、JCheckBox、JRadioButton、JLabel、JTextField、JTextArea、JComboBox、JList、JScrollBar和Jslider創(chuàng)建圖形用戶界面(第17.2–17.11節(jié))。為不同類型的事件創(chuàng)建監(jiān)聽(tīng)器(第17.2–17.11節(jié))。探究JButton(第17.2節(jié))。探究JCheckBox(第17.3節(jié))。探究JRadioButton(第17.4節(jié))。探究JLabel(第17.5節(jié))。探究JTextField(第17.6節(jié))。探究JTextArea(第17.7節(jié))。探究JComboBox(第17.8節(jié))。探究JList(第17.9節(jié))。探究JScrollBar(第17.10節(jié))。探究JSlider(第17.11節(jié))。在一個(gè)應(yīng)用程序中顯示多個(gè)窗口

(第17.12節(jié))。4本章涉及的組件介紹常用的GUI組件使用邊框和圖標(biāo)5按鈕按鈕(button)是點(diǎn)擊時(shí)觸發(fā)動(dòng)作事件的組件。Swing提供了常規(guī)按鈕、開(kāi)關(guān)按鈕、復(fù)選框按鈕和單選按鈕。這些按鈕的公共特性在javax.swing.AbstractButton中定義。6AbstractButton7JButtonJButton繼承AbstractButton并且提供創(chuàng)幾個(gè)建按鈕的構(gòu)造方法。8JButton的構(gòu)造函數(shù)下面是JButton的構(gòu)造函數(shù):JButton()JButton(Stringtext)JButton(Stringtext,Iconicon)JButton(Iconicon)9JButton的屬性texticonmnemonichorizontalAlignmentverticalAlignmenthorizontalTextPositionverticalTextPositioniconTextGap10默認(rèn)圖標(biāo)、按下圖標(biāo)和翻轉(zhuǎn)圖標(biāo)每個(gè)常規(guī)按鈕都有一個(gè)默認(rèn)圖標(biāo)、一個(gè)按下圖標(biāo)和一個(gè)翻轉(zhuǎn)圖標(biāo)。通常使用的是默認(rèn)圖標(biāo)。其它的圖標(biāo)都是為了顯示特殊效果。當(dāng)按下一個(gè)按鈕時(shí),顯示按下圖標(biāo),當(dāng)鼠標(biāo)移到按鈕上而不按下時(shí),顯示翻轉(zhuǎn)圖標(biāo)。(A)默認(rèn)圖標(biāo)(B)按下圖標(biāo)(C)翻轉(zhuǎn)圖標(biāo)11演示RunTestButtonIcons12水平對(duì)齊水平對(duì)齊指定以什么樣的水平方式在按鈕上放置圖標(biāo)和文本??梢允褂梦鍌€(gè)常量LEADING、LEFT、CENTER、RIGHT、TRAILING之一設(shè)置水平對(duì)齊方式。目前,LEADING和LEFT一樣,TRAILING和RIGHT一樣。今后的實(shí)現(xiàn)可以區(qū)分它們。默認(rèn)水平對(duì)齊方式是SwingConstants.CENTERTRAILING。13垂直對(duì)齊垂直對(duì)齊指定以什么樣的垂直方式在按鈕上放置文本和圖標(biāo)??梢允褂萌齻€(gè)常量TOP、CENTER和BOTTOM之一設(shè)置垂直對(duì)齊方式。默認(rèn)的垂直對(duì)齊方式是SwingConstants.CENTER。14水平文本位置水平文本位置指定文本相對(duì)于圖標(biāo)的水平位置??梢允褂梦鍌€(gè)常量LEADING、LEFT、CENTER、RIGHT和TRAILING之一設(shè)置文本的水平位置。默認(rèn)的水平文本位置是SwingConstants.RIGHT。15垂直文本位置垂直文本位置指定文本相對(duì)于圖標(biāo)的垂直位置。可以使用下面三個(gè)常量:TOP、CENTER和BOTTOM之一來(lái)設(shè)置文本的垂直位置。默認(rèn)垂直文本位置是SwingConstants.CENTER。16舉例:使用按鈕編寫(xiě)程序在面板上顯示一條消息并且使用兩個(gè)按鈕:<=和=>,在面板上向左或向右移動(dòng)這個(gè)消息。RunButtonDemo17JCheckBoxJCheckBox繼承AbstractButton類的所有屬性,例如:text、icon、mnemonic、verticalAlignment、horizontalAlignment、horizontalTextPosition、verticalTextPosition和selected,而且還提供了創(chuàng)建復(fù)選框的幾種構(gòu)造方法。18舉例:使用復(fù)選框?qū)⑷齻€(gè)名為Centered、Bold和

Italic的復(fù)選框添加到前面ButtonDemo的例子中,用戶使用它們指定消息是否居中、是否為粗體或斜體。CheckBoxDemoRunButtonDemoCheckBoxDemo19JRadioButton單選按鈕是復(fù)選框的變體。它們經(jīng)常一起使用,每次只有一個(gè)按鈕被選中。20將單選按鈕放在一組ButtonGroupbtg=newButtonGroup();btg.add(jrb1);btg.add(jrb2);21舉例:使用單選按鈕給前面的例子中添加3個(gè)名為Red、Green和Blue的單選按鈕,讓用戶選擇消息的顏色。RunRadioButtonDemoButtonDemoCheckBoxDemoRadioButtonDemo22JLabel標(biāo)簽是一個(gè)顯示小段文字、一幅圖像或同時(shí)顯示兩者的區(qū)域。23JLabel的構(gòu)造方法標(biāo)簽的構(gòu)造方法如下所示:JLabel()JLabel(Stringtext,inthorizontalAlignment)JLabel(Stringtext)JLabel(Iconicon)JLabel(Iconicon,inthorizontalAlignment)JLabel(Stringtext,Iconicon,inthorizontalAlignment)24JLabel的屬性JLabel繼承了JComponent類的所有屬性,并具有與JButton類相似的許多屬性,例如:text、icon、horizontalAlignment、verticalAlignment、horizontalTextPosition、verticalTextPosition和iconTextGap。

25使用標(biāo)簽//CreateanimageiconfromimagefileImageIconicon=newImageIcon("image/grapes.gif");

//Createalabelwithtext,anicon,//withcenteredhorizontalalignmentJLabeljlbl=newJLabel("Grapes",icon,SwingConstants.CENTER);

//Setlabel'stextalignmentandgapbetweentextandiconjlbl.setHorizontalTextPosition(SwingConstants.CENTER);jlbl.setVerticalTextPosition(SwingConstants.BOTTOM);jlbl.setIconTextGap(5);26JTextField文本域可用于用戶輸入字符的輸入?yún)^(qū)。文本域非常有用,它可以讓用戶輸入各種數(shù)據(jù)(例如:一個(gè)名字或一種描述)。27JTextField的構(gòu)造方法JTextField(intcolumns)

創(chuàng)建一個(gè)指定列數(shù)的空文本域JTextField(Stringtext)

創(chuàng)建一個(gè)用指定文本初始化的文本域JTextField(Stringtext,intcolumns)

創(chuàng)建一個(gè)用指定文本和列數(shù)初始化的文本域28JTextField的屬性texthorizontalAlignmenteditablecolumns29JTextField的方法getText()

返回文本域中的文本。setText(Stringtext)

將指定字符串在文本域顯示。setEditable(booleaneditable)

設(shè)置文本域可以編輯或不可編輯。默認(rèn)時(shí),editable

為true。setColumns(int)

設(shè)置文本域的列數(shù)。

文本域的長(zhǎng)度是可變的。30舉例:使用文本域給前一個(gè)例子添加一個(gè)文本域,允許用戶設(shè)置一條新消息。RunTextFieldDemo31JTextArea如果想讓用戶輸入多行文本,不能使用文本域而必須創(chuàng)建JTextField的幾個(gè)實(shí)例。一個(gè)更好的解決方案是使用JTextArea,它允許用戶輸入多行文本。32JTextArea的構(gòu)造方法JTextArea(introws,intcolumns)

創(chuàng)建一個(gè)指定行數(shù)和列數(shù)的空文本域。JTextArea(Strings,introws,intcolumns)

創(chuàng)建一個(gè)帶特定文本、行數(shù)和列數(shù)的新文本域。33JTextArea的屬性texteditablecolumnslineWrapwrapStyleWordrowslineCounttabSize34舉例:使用文本域這個(gè)例子給出的程序是在一個(gè)標(biāo)簽上顯示圖像,在一個(gè)標(biāo)簽上顯示標(biāo)題以及在一個(gè)文本區(qū)域中顯示文本。35舉例(續(xù))RunTextAreaDemo36JComboBox組合框就是一個(gè)條目列表,用戶能夠從中進(jìn)行選擇。它的基本功能是和列表一樣的,只是用戶只能選擇一項(xiàng)。37JComboBox的方法為了給組合框jcbo添加一個(gè)條目,使用下面的語(yǔ)句:jcbo.addItem(Objectitem)為了從組合框jcbo得到一個(gè)條目,使用下面的語(yǔ)句:jcbo.getItem()38使用itemStateChanged處理器publicvoiditemStateChanged(ItemEvente){//Makesurethesourceisacomboboxif(e.getSource()instanceofJComboBox)Strings=(String)e.getItem(); }每當(dāng)選中一個(gè)條目被選中或取消選中,為了處理ItemEvent事件的itemStateChanged()方法就會(huì)被觸發(fā)以及為處理ActionEvent事件的actionPerformed()方法也會(huì)被觸發(fā)。39舉例:使用組合框這個(gè)例子使用戶通過(guò)選擇組合框中的國(guó)家來(lái)查看某個(gè)國(guó)家國(guó)旗的圖像及其描述。RunComboBoxDemo40JList列表是一個(gè)組件,它完成的功能與組合框基本相同,但是它允許用戶選擇一個(gè)或多個(gè)值。41Jlist的構(gòu)造方法JList()

創(chuàng)建一個(gè)默認(rèn)空列表JList(Object[]stringItems)

創(chuàng)建一個(gè)以特定條目初始化的新列表42Jlist的屬性selectedIndexdselectedIndicesselectedValueselectedValuesselectionModevisibleRowCount43舉例:使用列表這個(gè)例程讓用戶在列表中選擇國(guó)家,并且在標(biāo)簽中顯示選中國(guó)家的國(guó)旗。RunListDemo44JScrollBar滾動(dòng)條是一個(gè)允許用戶從一個(gè)值的范圍中進(jìn)行選擇的組件。滾動(dòng)條有兩種類型:水平型和垂直型。45滾動(dòng)條屬性46舉例:使用滾動(dòng)條這個(gè)例子使用水平滾動(dòng)條和垂直滾動(dòng)條在控制面板上顯示一條消息。水平滾動(dòng)條用以左右移動(dòng)消息,而垂直滾動(dòng)條用以上下移動(dòng)消息。ScrollBarDemoRun47JSlider滑塊與滾動(dòng)條類似,但是JSlider具有更多的屬性,并且可以以多種形式顯示。48舉例:使用滑塊重寫(xiě)前面的程序,使用滑塊而非滾動(dòng)條來(lái)控制在面板上顯示一條消息。SliderDemoRun49創(chuàng)建多個(gè)窗口下面的幻燈片顯示如何一步一步在一個(gè)應(yīng)用程序或applet中創(chuàng)建一個(gè)額外的窗口。50第1步:創(chuàng)建一個(gè)Jframe的子類,并且告訴新窗口做什么。例如:所有的GUI應(yīng)用程序都繼承了JFrame,并且都是JFrame的子類。創(chuàng)建額外的窗口(第1步)51創(chuàng)建額外的窗口(第2步)第

溫馨提示

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