![Java程序設(shè)計教程課件 第7章 圖形用戶界面程序設(shè)計_第1頁](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ546.jpg)
![Java程序設(shè)計教程課件 第7章 圖形用戶界面程序設(shè)計_第2頁](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ5462.jpg)
![Java程序設(shè)計教程課件 第7章 圖形用戶界面程序設(shè)計_第3頁](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ5463.jpg)
![Java程序設(shè)計教程課件 第7章 圖形用戶界面程序設(shè)計_第4頁](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ5464.jpg)
![Java程序設(shè)計教程課件 第7章 圖形用戶界面程序設(shè)計_第5頁](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ5465.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第7章
圖形用戶界面程序設(shè)計
教學(xué)導(dǎo)航教學(xué)目標了解Swing實現(xiàn)多文檔界面應(yīng)用程序的組件熟悉Swing的常用容器類組件、基本組件、對話框及相關(guān)方法熟悉容器中組件的合理布局方法熟練掌握在ApacheNetBeansIDE的可視化環(huán)境中設(shè)計窗口與添加組件的方法掌握事件監(jiān)聽的實現(xiàn)方法學(xué)會創(chuàng)建JFrame窗口、在JFrame窗口中添加組件學(xué)會在JFrame窗體中創(chuàng)建并使用菜單、快捷菜單學(xué)會在JFrame窗體中創(chuàng)建并使用工具欄學(xué)會應(yīng)用JTable組件設(shè)計JavaGUI應(yīng)用程序
教學(xué)導(dǎo)航教學(xué)重點Swing的常用組件及其相關(guān)方法創(chuàng)建JFrame窗口、在JFrame窗口中添加組件容器中組件的合理布局方法事件監(jiān)聽的實現(xiàn)方法在JFrame窗體中創(chuàng)建并使用菜單、快捷菜單在JFrame窗體中創(chuàng)建并使用工具欄在ApacheNetBeansIDE的可視化環(huán)境中設(shè)計窗口與添加組件
身臨其境Windows10自帶的計算器界面如圖7-1所示,該界面包含多個按鈕、1個標簽等組件。QQ登錄界面如圖7-2所示,該界面包含圖片、標簽、下拉列表框、密碼輸入框、復(fù)選框、登錄按鈕等組件。Windows照片查看器界面如圖7-3所示,該界面包括多個菜單、多個工具按鈕。圖7-1
Windows10自帶的計算器界面
圖7-2
QQ登錄界面圖7-3
Windows照片查看器界面
前導(dǎo)知識【知識7-1】比較Swing和AWT
抽象窗口工具箱(AbstractWindowToolkjt,AWT)和Swing分別是Java為開發(fā)GUI提供的第一代和第二代技術(shù)。Swing不但用輕量級組件代替了AWT中的重量級組件,而且提供了比AWT更加豐富的組件,還增加了很多新的特性與功能。Swing是Java基礎(chǔ)類庫(JavaFoundationClasses,JFC)的一個重要組成部分,它不僅提供了豐富的組件,還提供了獨立于運行平臺的GUI架構(gòu),并且在不同的平臺上都能夠具有一致的顯示風格。Swing組件是在AWT組件基礎(chǔ)上發(fā)展起來的新型GUI組件。Swing組件的名稱都以字母“J”開頭,很多組件的名稱是在同類AWT組件的名稱前增加了一個字母“J”,如JButton和JPanel等。Swing組件位于javax.swing包中,AWT組件位于java.awt包中。Swing組件是AWT組件的Container類的直接子類或間接子類,Container類是用來管理相關(guān)組件的類,所有Swing組件都是JComponent類的子類。Swing組件必須添加到容器組件中才可以在用戶界面中顯示。Swing組件都具有setEnable(booleanb)方法,當組件對象調(diào)用該方法且參數(shù)值為true時組件被啟用,否則組件被禁用。
前導(dǎo)知識【知識7-2】認知Swing組件的分類
Swing組件從功能上可分為如下幾類。(1)頂層容器包括JFrame、JWindow、JDialog和JApplet。頂層容器為其他組件的顯示與事件處理提供支持。(2)中間容器包括JPanel、JScrollPane、JSplitPane、JMenuBar、JToolBar。JPanel較常用,能夠通過布局來排列其內(nèi)部組件。JScrollPane與JPanel類似,可以提供滾動條。JSplitPane是一種分割面板,可以將組件分成上下或左右兩個部分。JMenuBar是一個菜單容器,用于建立菜單欄。JToolBar為按行或列排列的一組組件。(3)基本組件是實現(xiàn)人機交互的主要組件,如JButton、JTextField、JComboBox、JList、JMenu、JSlider等。(4)可編輯組件是給用戶顯示能被編輯格式化信息的組件,如JTextArea、JTable、JFileChooser、JColorChooser等。(5)不可編輯組件是給用戶顯示不可編輯信息的組件,如JLable、JProgressBar等。除了JPanel外,其他的Swing容器不允許把組件直接加入容器,JPanel及其子類可以直接添加組件。其他容器添加組件的方式有如下兩種。(1)使用getContentPane()方法獲得內(nèi)容面板,并將組件加入內(nèi)容面板,示例代碼如下。jframe.getContentPane().add(jlabel);也可以將內(nèi)容面板添加到窗口容器中,示例代碼如下。jframe.add(chileComponent);(2)建立一個JPanel或JDesktopPane之類的中間容器,把組件添加到中間容器中,并使用setContentPane()方法把中間容器設(shè)置為內(nèi)容面板,示例代碼如下。JPanelcontentPane=newJPanel();
jframe.setContentPane(contentPane);
前導(dǎo)知識【知識7-3】認知Swing的常用容器類組件及其相關(guān)方法Swing的常用容器類組件包括JFrame、JWindow、JPanel、JScrollPane、JSplitPane和JToolBar這6種。(1)JFrame組件(Component)是JavaGUI最基本的組成部分,是一個可以用圖形化方式顯示在屏幕上并且能夠與用戶進行交互的對象,如JButton、JLable等。但是組件不能獨立顯示,必須將組件放在一個容器中才能顯示出來。容器是用來組織其他圖形界面元素的基礎(chǔ)組件。容器內(nèi)部可以包含許多其他組件,也可以包含另一個容器。所有的容器類都是Container類的子類。Java應(yīng)用程序一般以一個JFrame對象作為主窗口,JFrame屬于頂層容器組件,JFrame類包含通用窗口的基本功能,如最小化窗口、移動窗口、重新設(shè)定窗口大小等。JFrame作為頂層容器,不能被其他容器包含,但可以被其他容器創(chuàng)建并彈出成為獨立的容器。(2)JWindowJWindow可以構(gòu)造無邊框的窗口(3)JPanelJPanel組件屬于中間容器,用于將小型的輕量級組件組合在一起。(4)JScrollPaneJScrollPane組件是帶滾動條的面板,除了具有滾動條以外,該組件還可以設(shè)置表頭名稱、邊角圖案與ScrollPane外框,相比于JPanel,JScrollPane具有更強的靈活性。(5)JSplitPaneJSplitPane組件一次可將兩個組件同時顯示在兩個顯示區(qū)中。如果想要同時在多個顯示區(qū)顯示組件,則必須同時使用多個JSplitPane組件。JSplitPane組件提供了兩個參數(shù)來設(shè)置水平分割(HORIZONTAL_SPLIT)和垂直分割(VERTICAL_SPLIT)。(6)JToolBarJToolBar是一個顯示一組動作、命令或功能的組件,一般工具欄中的組件都是帶圖標的按鈕,可以使用戶更加方便地選擇所需的功能。
前導(dǎo)知識【知識7-4】認知Swing的基本組件及其相關(guān)方法Swing的基本組件包括標簽(JLabel)、文本域(JTextField)、密碼文本框(JPasswordField)、文本域(JTextArea)、按鈕(JButton)、單選按鈕(JRadioButton)、復(fù)選框(JCheckBox)和組合框(JComboBox)這8種。(1)JLabelJLabel是其內(nèi)容只能瀏覽但不能修改的組件,可以用于顯示文字,也可以用于顯示圖標,一般為用戶提供相關(guān)的提示信息。(2)JTextFieldJTextField用于顯示或編輯單行文本,但不能顯示或編輯多行文本。(3)JPasswordFieldJPasswordField類是JTextField類的子類,可以使用JTextField類的方法。該組件常用于輸入密碼,在JPasswordField組件中輸入的文字會被其他字符(如“*”)替代。(4)JTextAreaJTextArea組件用于顯示或編輯多行文本。(5)JButtonJButton是GUI應(yīng)用程序中非常重要的一種組件,當用戶單擊按鈕時,將會自動執(zhí)行與該按鈕關(guān)聯(lián)的程序,從而實現(xiàn)預(yù)定的功能。(6)JRadioButtonJRadioButton類和JCheckBox類是JToggleButton的子類,JRadioButton類可以實現(xiàn)“多選一”的操作,即在一組單選按鈕中選擇其中一個。它們可以使用AbstractButton抽象類中的多個方法,如addItemListener()、setText()、isSelected()等。因為單選按鈕是在一組按鈕中選擇一個,所以必須將單選按鈕分組,即指明一個組中包含哪些單選按鈕,在IDE中可以通過屬性窗口的buttonGroup屬性將單選按鈕加入單選按鈕組。(7)JCheckBoxJCheckBox組件可以實現(xiàn)在一組在復(fù)選框中選擇多個復(fù)選框的操作。
前導(dǎo)知識【知識7-5】認知Swing的對話框及其相關(guān)方法對話框是一種類似窗口的容器,與一般窗口的區(qū)別在于它依賴于其他窗口(當它所依賴的窗口消失或最小化時,對話框也消失;窗口還原時,對話框又會自動恢復(fù))。對話框還具有模態(tài)特性。(1)JDialog對話框JDialog對話框是有邊框、有標題的頂層容器。對話框分為模態(tài)對話框和非模態(tài)對話框。模態(tài)對話框只讓程序響應(yīng)對話框內(nèi)的事件,對對話框以外的事件程序不響應(yīng);非模態(tài)對話框可以讓程序響應(yīng)對話框以外的事件。(2)JOptionPane對話框使用JDialog組件來制作對話框時,需要建立對話框中的每一個組件。有時候?qū)υ捒蛑皇秋@示一段文字,或一些簡單選擇(是或否),這時利用JOptionPane組件更方便,并且可以達到和使用JDialog組件同樣的效果。利用javax.swing包中的JOptionPane類提供的靜態(tài)方法可以創(chuàng)建各種類型的簡單對話框,包括Message對話框、Confirm對話框和input對話框,這些對話框還可以在建立時通過設(shè)置不同參數(shù)而產(chǎn)生不同的效果。
前導(dǎo)知識【知識7-6】認知Swing實現(xiàn)多文檔界面應(yīng)用程序的組件多文檔界面(MultipleDocumentInterface,MDI)應(yīng)用程序只有一個父窗口,子窗口在父窗口內(nèi)顯示。在父窗口內(nèi)建立一個桌面面板(JDesktopPane)作為桌面,通過繼承JInternalFrame類建立子窗口。子窗口可在父窗口內(nèi)打開、關(guān)閉、最大化和最小化。(1)桌面面板桌面面板是一種特殊的層面板,用來建立虛擬桌面,它可以顯示并管理眾多內(nèi)部窗口的層次關(guān)系。桌面面板的構(gòu)造方法為JDesktopPane()。(2)內(nèi)部窗口內(nèi)部窗口(JInternalFrame)的使用與JFrame相似,可以設(shè)置最大化、最小化、關(guān)閉、添加菜單等功能。不同的是JInternalFrame不能單獨出現(xiàn),必須依附在上層組件上,一般加入JDesktopPane進行管理。7.1創(chuàng)建JFrame窗口并添加組件7.2事件監(jiān)聽與對話框使用7.4在JFrame窗體中創(chuàng)建并使用菜單學(xué)習(xí)要點7.3在JFrame窗體中創(chuàng)建并使用快捷菜單7.57.67.7在JFrame窗體中創(chuàng)建并使用工具欄在可視化設(shè)計環(huán)境中設(shè)計窗口并添加組件應(yīng)用JTable組件設(shè)計JavaGUI程序任務(wù)7-1-1
設(shè)計用戶登錄窗口【任務(wù)描述】
創(chuàng)建1個用戶登錄窗口,具體要求如下。設(shè)置窗口風格為Windows風格。設(shè)置窗口標題為“用戶登錄”。設(shè)置窗口的寬度為300px、高度為150px。設(shè)置窗口圖標為QQ1.gif。控制窗口位于屏幕中心位置。控制窗口移到最前。設(shè)置窗口可見。設(shè)置關(guān)閉行為:當窗口關(guān)閉時,隱藏并處理該窗口。任務(wù)7-1-2
在用戶登錄窗口中添加JLabel組件【任務(wù)描述】
創(chuàng)建1個用戶登錄窗口,創(chuàng)建1個標簽對象,將標簽添加到窗口容器中?!局R7-7】在JFrame窗體中添加組件在Swing中,JPanel組件及其子類可以直接添加組件,在容器中添加組件有以下兩種方式。(1)使用getContentPane()方法獲取內(nèi)容面板,并將標簽加入組件。在容器中添加組件的代碼如下。JFrameframe=newJFrame();ContainerobjContainer=frame.getContentPane()
;
//獲取內(nèi)容面板objContainer.add(組件對象)
;
//將標簽添加到內(nèi)容面板中也可以寫成如下形式。frame.getContentPane().add(組件對象)
;
(2)建立一個JPanel之類的中間容器,把組件添加到中間容器中,并使用setContentPane()方法把該容器設(shè)置為內(nèi)容面板。示例代碼如下。JFrameframe=newJFrame()
;JPaneljp=newJPanel()
;jp.add(組件對象);frame.setContentPane(jp)
;
//把jp設(shè)置為內(nèi)容面板任務(wù)7-1-3
運用手動布局方式對用戶登錄窗口中的組件進行布局【任務(wù)描述】
創(chuàng)建1個用戶登錄窗口,在該窗口容器中添加4個標簽對象、1個文本字段組件、1個口令字段組件和2個按鈕組件,運用手動布局方式布局窗口中的組件并設(shè)置組件的大小。【知識7-8】對窗體中的組件進行布局Java為了實現(xiàn)跨平臺的特性并且獲得動態(tài)的布局效果,將容器內(nèi)所有組件安排給一個布局管理器管理,并將組件的排列順序、大小、位置等功能授權(quán)給對應(yīng)的布局管理器管理。不同的布局管理器使用不同的算法和策略。容器可以通過選擇不同的布局管理器來設(shè)置組件的布局方式。布局管理器主要包括FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout。另外,可以使用手動布局方式布局組件。手動布局方式直接定義了組件的位置和大小,即先將一個容器的布局設(shè)置為空布局(null),再使用setBounds(intx,inty,intwidth,intheight)方法設(shè)置組件在容器中的位置和大小。1.Java的布局方式(1)流式布局使用流式布局(FlowLayout)時,組件從左上角開始,按從左到右、從上到下的方式排列。這種布局方式在默認情況下,組件居中,間距為5px,是內(nèi)容面板和Applet的默認布局方式。(2)邊框布局使用邊框布局(BorderLayout)時,組件被置于容器的東、南、西、北、中的位置。這種布局方式是JFrame、JWindow和JDialog等對象的默認布局方式。任務(wù)7-1-3
運用手動布局方式對用戶登錄窗口中的組件進行布局【知識7-8】對窗體中的組件進行布局(3)網(wǎng)格布局使用網(wǎng)格布局(GridLayout)時,將容器區(qū)域劃分為一個矩形網(wǎng)格,組件按行和列排列。當所有的組件大小相同時,可以使用網(wǎng)格布局。網(wǎng)格布局以行為基準,按行優(yōu)先順序排列,在組件數(shù)目較多時自動擴展列,在組件數(shù)目較少時自動收縮列。網(wǎng)格布局的行數(shù)始終不變。(4)卡片布局使用卡片布局(CardLayout)時,組件會像卡片一樣排列,多個組件擁有同一個顯示區(qū)域,但同一時刻只能顯示一個組件。(5)網(wǎng)格袋布局網(wǎng)格袋布局(GridBagLayout)與網(wǎng)格布局類似,也在網(wǎng)格中定位組件,不同的是,網(wǎng)格袋組件不顯示規(guī)定網(wǎng)格中的行數(shù)和列數(shù),而是根據(jù)它布局的組件的約束條件確定行數(shù)和列數(shù),并且允許組件跨越多個網(wǎng)格單元。2.Java的空隙類進行組件布局時,還可以使用空隙類設(shè)置組件之間的間距,使組件顯示效果更好。(1)定義方形空隙Componentcomponent=Box.createRigidArea(size);(2)定義水平空隙Componentcomponent=Box.createHorizontalGlue(size);(3)定義垂直空隙Componentcomponent=Box.createVerticalStrut(size);7.1創(chuàng)建JFrame窗口并添加組件7.2事件監(jiān)聽與對話框使用7.4在JFrame窗體中創(chuàng)建并使用菜單學(xué)習(xí)要點7.3在JFrame窗體中創(chuàng)建并使用快捷菜單7.57.67.7在JFrame窗體中創(chuàng)建并使用工具欄在可視化設(shè)計環(huán)境中設(shè)計窗口并添加組件應(yīng)用JTable組件設(shè)計JavaGUI程序任務(wù)7-1-3
運用響應(yīng)動作事件實現(xiàn)用戶登錄功能并使用對話框【任務(wù)描述】
參考程序Example7_3.java創(chuàng)建1個用戶登錄窗口,該窗體類繼承自JFrame類,并實現(xiàn)ActionListener監(jiān)聽接口。在窗體類的構(gòu)造方法中注冊【取消】按鈕btnCancel的動作事件監(jiān)聽者為當前對象。編寫動作事件處理方法actionPerformed()的程序代碼來響應(yīng)用戶的單擊操作,并在代碼中使用對話框輸出提示信息?!局R7-9】認知事件監(jiān)聽與響應(yīng)動作事件Java處理事件響應(yīng)基本沿用AWT的事件類和監(jiān)聽接口,盡管Swing也定義了事件類和監(jiān)聽接口,但普遍使用的還是AWT的事件類和監(jiān)聽接口?;镜氖录幚硎褂胘ava.awt.event包中的類實現(xiàn),同時javax.swing.event包中增加了一些新的事件類和監(jiān)聽接口。AWT事件類都是從AWTEvent繼承來的,常用的事件有窗口事件(WindowEvent)、鼠標事件(MouseEvent)、鍵盤事件(KeyEvent)、焦點事件(FocusEvent)、動作事件(ActionEvent)、項目事件(ItemEvent)、文本事件(TextEvent)等。任務(wù)7-1-3
運用響應(yīng)動作事件實現(xiàn)用戶登錄功能并使用對話框【知識7-9】認知事件監(jiān)聽與響應(yīng)動作事件事件監(jiān)聽接口、適配器響應(yīng)方法事件源窗口事件WindowListener、WindowAdapterwindowOpened(WindowEvente)、windowActivated(WindowEvente)、windowClosing(WindowEvente)、windowClosed(WindowEvente)、windowDeactivated(WindowEvente)、windowDeiconified(WindowEvente)、windowIconified(WindowEvente)Window鼠標事件MouseListener、MouseAdaptermouseClicked(MouseEvente)、mouseEntered(MouseEvente)、mouseExited(MouseEvente)、mousePressed(MouseEvente)、mouseReleased(MouseEvente)JComponentMouseMotionListenermouseDragged(MouseEvente)、mouseMoved(MouseEvente)JComponent鍵盤事件KeyListener、KeyAdapterkeyPressed(KeyEvente)、keyReleased(KeyEvente)、keyTyped(keyEvente)JComponent焦點事件FocusListener、FocusAdapterfocusGained(FocusEvente)、focusLost(FocusEvente)JComponent動作事件ActionListeneractionPerformed(ActionEvente)AbstractButton、JComboBox、JTextField、Timer項目事件ItemListenerItemStateChanged(ItemEvente)AbstractButton、JComboBox文本事件TextListenertextValueChanged(TextEvente)JTextField表7-4
事件對應(yīng)的監(jiān)聽接口、適配器、響應(yīng)方法和事件源任務(wù)7-1-3
運用響應(yīng)動作事件實現(xiàn)用戶登錄功能并使用對話框【知識7-9】認知事件監(jiān)聽與響應(yīng)動作事件1.動作事件圖形界面程序要實現(xiàn)交互功能,就必須不斷監(jiān)聽單擊鼠標和敲擊鍵盤等事件。只有這樣,應(yīng)用程序才能對發(fā)生的事件做出響應(yīng)。單擊按鈕或在文本框中按【Enter】鍵,都會發(fā)生動作事件。Java處理事件涉及幾個重要的概念:事件源、監(jiān)聽者、事件接口。(1)事件源能夠產(chǎn)生事件的對象稱為事件源,如按鈕、文本框、菜單等,鼠標或鍵盤在事件源上操作將產(chǎn)生事件。不同的事件源會產(chǎn)生不同的事件,例如,單擊按鈕將產(chǎn)生動作事件,打開窗口將產(chǎn)生窗口事件。(2)監(jiān)聽者實現(xiàn)事件響應(yīng)的關(guān)鍵是一旦產(chǎn)生事件,監(jiān)聽者必須自動執(zhí)行響應(yīng)程序。監(jiān)聽者是指對事件進行監(jiān)聽,以便對產(chǎn)生的事件進行處理的對象。事件源通過調(diào)用相應(yīng)的方法將某個對象注冊為監(jiān)聽者。每個事件源都有注冊監(jiān)聽者的方法,例如,通過調(diào)用如下方法為按鈕類JButton注冊動作事件監(jiān)聽者:按鈕變量名.addActionListener(監(jiān)聽者);。如果動作事件監(jiān)聽者是當前對象,則“監(jiān)聽者”為“this”,即代碼形式為變量名.addActionListener(this);。這樣,一旦單擊按鈕,就會產(chǎn)生一個動作事件,如果按鈕注冊了監(jiān)聽者,則事件對象將傳送到監(jiān)聽者的actionPerformed()方法,并且監(jiān)聽者會自動執(zhí)行這個方法。(3)事件接口事件接口規(guī)定了監(jiān)聽者需要實現(xiàn)的用于處理事件的方法。如果一個類的對象能作為監(jiān)聽者,那么該類必須實現(xiàn)相應(yīng)的事件接口,即必須在類體中給出該接口中所有方法的方法體。動作事件的接口為ActionListener,該接口只有一個方法:publicvoidactionPerformed(ActionEvente)。該方法就是響應(yīng)單擊按鈕事件的方法。因為接口不能直接創(chuàng)建實例對象,所以最終負責監(jiān)聽事件的是實現(xiàn)該接口的類的對象。與實現(xiàn)其他接口一樣,實現(xiàn)監(jiān)聽接口必須重寫接口中的抽象方法。重寫的方法體就是事件響應(yīng)程序,即事件產(chǎn)生后自動運行的程序。任務(wù)7-1-3
運用響應(yīng)動作事件實現(xiàn)用戶登錄功能并使用對話框【知識7-9】認知事件監(jiān)聽與響應(yīng)動作事件2.鼠標事件鼠標動作引起的事件稱為鼠標事件。鼠標事件的事件源一般為容器。當鼠標按下、釋放、單擊時會引發(fā)鼠標事件(對應(yīng)MouseEvent類),MouseEvent類存于java.awt.event包中??梢酝ㄟ^實現(xiàn)java.awt.event包中的MouseListener接口和MouseMotionListener接口處理鼠標事件。3.事件適配器Java提供了鼠標適配器(MouseAdapter)類和鼠標移動適配器(MouseMotionAdapter)類來處理鼠標事件。MouseAdapter類實現(xiàn)了MouseListener接口;MouseMotionAdapter類實現(xiàn)了MouseMotionListener接口,這些類稱為適配器(Adapter)類。適配器類重寫了接口中的所有方法,但方法體都為空,這樣通過繼承適配器類實現(xiàn)事件響應(yīng)時就不必實現(xiàn)接口中的所有方法了,只需重寫需要的方法。事件適配器為人們提供了一種簡單的實現(xiàn)監(jiān)聽的手段,可以適當減少程序代碼的編寫量。7.1創(chuàng)建JFrame窗口并添加組件7.2事件監(jiān)聽與對話框使用7.4在JFrame窗體中創(chuàng)建并使用菜單學(xué)習(xí)要點7.3在JFrame窗體中創(chuàng)建并使用快捷菜單7.57.67.7在JFrame窗體中創(chuàng)建并使用工具欄在可視化設(shè)計環(huán)境中設(shè)計窗口并添加組件應(yīng)用JTable組件設(shè)計JavaGUI程序任務(wù)7-2-1
創(chuàng)建記事本主窗口【任務(wù)描述】
(1)創(chuàng)建一個450px×300px的JFrame窗口【我的記事本】。(2)在該窗口中添加一個10行10列的JTextArea文本域,用來顯示多行信息。(3)創(chuàng)建一個JScrollPane組件,將JTextArea文本域作為其顯示組件。(4)向JFrame窗口【我的記事本】中添加JScrollPane組件。任務(wù)7-2-2
創(chuàng)建記事本主窗口并添加菜單【任務(wù)描述】
(1)創(chuàng)建1個【我的記事本】窗口。(2)在【我的記事本】窗口中添加1個菜單欄,在菜單欄容器中添加4個菜單:【文件】【編輯】【格式】和【幫助】。(3)在【文件】菜單中添加【新建】【打開】【另存為】【退出】4個菜單項和1根分隔線,在【編輯】菜單中添加【復(fù)制】【剪切】【粘貼】【全選】【清除】5個菜單項和1根分隔線,在【格式】菜單中添加1個復(fù)選框菜單項【自動換行】,在【幫助】菜單中添加1個菜單項【幫助】。(4)設(shè)置各個菜單和菜單項的熱鍵。(5)設(shè)置各個菜單項的快捷鍵。(6)為【退出】菜單項編寫事件處理程序,實現(xiàn)退出功能。任務(wù)7-2-2
創(chuàng)建記事本主窗口并添加菜單【知識7-10】在JFrame窗體中創(chuàng)建并使用菜單菜單組件可以使窗口顯示菜單項。Swing提供了3個層次的菜單類,第1層的菜單欄JMenuBar是存放菜單的容器;第2層為菜單JMenu,可以直接添加到JMenuBar中創(chuàng)建頂層菜單,也可以作為其他菜單的子菜單;第3層為菜單項JMenuItem,其中JCheckBoxMenuItem為帶復(fù)選框的菜單項,JRadioButtonMenuItem為帶單選按鈕的菜單項。創(chuàng)建菜單時,首先要使用JMenuBar建立一個菜單欄,然后使用JMenu建立菜單,并使用JMenuItem為每個菜單建立菜單項。(1)菜單欄菜單欄(JMenuBar)是菜單的容器,其構(gòu)造方法為JMenuBar()。(2)菜單菜單(JMenu)是用來存放和整合菜單項的組件,它可以是單一層次的結(jié)構(gòu),也可以是一個層次化的結(jié)構(gòu)。(3)菜單項JMenuItem類繼承自AbstractButton類,因此JMenuItem對象具有許多AbstractButton類的特性,也可以說JMenuItem是一種特殊的按鈕。同時,可以在JMenuItem中添加圖標,當選擇某一個菜單項時就如同按下按鈕一樣,會觸發(fā)動作事件。(4)復(fù)選框菜單項JCheckBoxMenuItem類用于建立一個復(fù)選框菜單項(JCheckBoxMenuItem)。(5)單選按鈕菜單項JRadioButtonMenuItem類用于建立一個單選按鈕菜單項(JRadioButtonMenuItem)。7.1創(chuàng)建JFrame窗口并添加組件7.2事件監(jiān)聽與對話框使用7.4在JFrame窗體中創(chuàng)建并使用菜單學(xué)習(xí)要點7.3在JFrame窗體中創(chuàng)建并使用快捷菜單7.57.67.7在JFrame窗體中創(chuàng)建并使用工具欄在可視化設(shè)計環(huán)境中設(shè)計窗口并添加組件應(yīng)用JTable組件設(shè)計JavaGUI程序任務(wù)7-2-3
為記事本窗口添加快捷菜單
【任務(wù)描述】
(1)創(chuàng)建1個【我的記事本】窗口。(2)在【我的記事本】窗口中添加1個快捷菜單欄,在快捷菜單欄容器中添加1個菜單【文件】、3個單選按鈕菜單項【復(fù)制】【剪切】【粘貼】、2根分隔線和1個菜單項【退出】,【文件】菜單中包含3個菜單項——【新建】【打開】【另存為】。(3)設(shè)置菜單項的快捷鍵。(4)為JFrame窗口的文本域添加鼠標事件監(jiān)聽器,實現(xiàn)右擊文本域后彈出快捷菜單的功能。(5)為【退出】菜單項編寫事件處理程序,實現(xiàn)退出功能。任務(wù)7-2-3
為記事本窗口添加快捷菜單【知識7-11】在JFrame窗體中創(chuàng)建與使用快捷菜單快捷菜單(JPopupMenu)是一種特殊的菜單,其性質(zhì)與菜單基本一致,但是JPopupMenu并不固定在窗口中的固定位置,而是由鼠標和系統(tǒng)決定其位置。JPopupMenu的構(gòu)造方法如下。①JPopupMenu()。
②JPopupMenu(Stringtext)。
其中,參數(shù)text用于指定彈出快捷菜單的文本內(nèi)容。彈出快捷菜單一般通過鼠標事件實現(xiàn),示例代碼如下。publicvoidmouseReleased(MouseEvente){if(e.isPopupTrigger()){popupMenu.show(e.getComponent(),e.getX(),e.getY());}}7.1創(chuàng)建JFrame窗口并添加組件7.2事件監(jiān)聽與對話框使用7.4在JFrame窗體中創(chuàng)建并使用菜單學(xué)習(xí)要點7.3在JFrame窗體中創(chuàng)建并使用快捷菜單7.57.67.7在JFrame窗體中創(chuàng)建并使用工具欄在可視化設(shè)計環(huán)境中設(shè)計窗口并添加組件應(yīng)用JTable組件設(shè)計JavaGUI程序任務(wù)7-2-4
為記事本窗體添加工具欄
【任務(wù)描述】
(1)創(chuàng)建1個【我的記事本】窗口。(2)在【我的記事本】窗口中添加1個工具欄,在工具欄中添加【新建文件】【打開文件】【保存文件】【復(fù)制文件】【剪切文件】【粘貼文件】和【退出】7個按鈕、2根分隔線。要求鼠標指針移動到按鈕上時出現(xiàn)邊框。(3)為工具欄中的【新建文件】和【退出】按鈕編寫事件處理程序。任務(wù)7-2-4
為記事本窗體添加工具欄
【知識7-12】在JFrame窗體中創(chuàng)建與使用工具欄使用JToolBar類創(chuàng)建一個工具欄對象,然后使用add()方法將按鈕添加到工具欄中。JToolBar類的構(gòu)造方法如下。①JToolBar()。
②JToolBar(Stringtext)。
③JToolBar(intorientation)。
④JToolBar(Stringtext,intorientation)。
其中,參數(shù)text用于設(shè)置工具欄中按鈕的文本內(nèi)容;參數(shù)orientation用于設(shè)置工具欄中按鈕的位置。JToolBar類的常用方法如下。①voidsetFloatable(booleanb):設(shè)置工具欄是否可以浮動。②voidsetRollover(booleanrollover):鼠標指針移動到按鈕上時是否出現(xiàn)邊框。③voidsetOrientation(into):設(shè)置工具欄方向。④voidsetToolTipText():設(shè)置按鈕提示文字。⑤voidaddSeparator():添加分隔線。7.1創(chuàng)建JFrame窗口并添加組件7.2事件監(jiān)聽與對話框使用7.4在JFrame窗體中創(chuàng)建并使用菜單學(xué)習(xí)要點7.3在JFrame窗體中創(chuàng)建并使用快捷菜單7.57.67.7在JFrame窗體中創(chuàng)建并使用工具欄在可視化設(shè)計環(huán)境中設(shè)計窗口并添加組件應(yīng)用JTable組件設(shè)計JavaGUI程序任務(wù)7-3
可視化設(shè)計用戶登錄程序【任務(wù)描述】
在ApacheNetBeansIDE可視化設(shè)計環(huán)境中創(chuàng)建圖7-19所示的【用戶登錄】窗口,在“用戶名”文本框中輸入正確的用戶名,在“密碼”文本框中輸入正確的密碼,單擊【登錄】按鈕,彈出“成功登錄系統(tǒng)”的提示信息對話框,否則彈出“用戶名有誤”或者“密碼不正確”的提示信息對話框。單擊【取消】按鈕,會彈出一個供用戶進行選擇的對話框。任務(wù)7-3
可視化設(shè)計用戶登錄程序【知識7-13】創(chuàng)建與使用Java中的包1.初識包利用面向?qū)ο蟪绦蛟O(shè)計技術(shù)開發(fā)軟件時,程序員需要定義許多類并使其共同工作,有些類可能要反復(fù)被使用。為了使這些類易于查找和使用、避免命名沖突以及限定類的訪問權(quán)限,程序員可以將一組功能相關(guān)的類與接口打包成一個包(Package)。Java通過包可以方便地管理程序的類和接口。包是類和接口的集合,或者說包是類和接口的容器,它將一組類或接口集中到一起。在文件系統(tǒng)中,包被轉(zhuǎn)換成一個文件夾。包中還可以有包,形成一種層次結(jié)構(gòu)。包的優(yōu)點主要體現(xiàn)在以下幾個方面。(1)程序員可以很容易地確定包中的類是相關(guān)的,并且根據(jù)所需要的功能找到對應(yīng)的類。(2)包可以防止類命名混亂。每個包都創(chuàng)建了一個獨立的命名空間,因此位于不同包中的相同類名不會產(chǎn)生沖突。(3)包可以控制內(nèi)部類、接口、成員變量和方法的可見性。在包中,除了訪問權(quán)限聲明為private的成員變量和方法之外,類中所有的成員變量和方法還可以被同一包中的其他類和方法訪問。2.使用package創(chuàng)建包
創(chuàng)建包就是將類與接口放入指定的包中,創(chuàng)建包可通過在類和接口的源文件中使用package相應(yīng)語句實現(xiàn)。聲明包的語句格式如下。package包名稱1[.包名稱2……];其中,符號“.”代表分隔符;“包名稱1”為最外層的包;“包名稱2”為內(nèi)層的包。示例代碼如下。packagepackage7_3;在ApacheNetBeansIDE中,可以快捷創(chuàng)建包。任務(wù)7-3
可視化設(shè)計用戶登錄程序【知識7-13】創(chuàng)建與使用Java中的包3.Java中常用的包Java提供了以下幾個常用的包。(1)java.lang:該包包含Java編程所需要的基礎(chǔ)類和接口,如Object類、Math類、String類、StringBuffer類、Thread類、Throwable類和Runnable接口等。這個包是唯一
一個可以不用導(dǎo)入就可以使用的包。(2)java.io:該包包含標準I/O類,如文件操作等。(3)java.nio:為了完善io包的功能,提高io包性能而創(chuàng)建的一個新包。(4)java.util:該包包含豐富的常用工具類,包括自成體系的集合框架、事件模型、日期時間、國際化支持工具等許多有益的工具,如Date類、Vector類等。(5):該包包含實現(xiàn)網(wǎng)絡(luò)功能的類,如URL、URLConnection等。(6)java.sql:該包包含訪問數(shù)據(jù)庫的類和接口,如Connection、Statement、ResultSet等。(7)java.awt:該包包含所有創(chuàng)建用戶界面(UserInterface,UI)、繪圖及圖像處理的類,其部分功能正在被java.swing取代。(8)java.awt.event:該包包含事件處理的類。(9)java.applet:該包包含創(chuàng)建Applet以及Applet與其運行上下文環(huán)境進行通信所需要的類。(10)javax.servlet:該包包含JSP、Servlet等使用到的類。任務(wù)7-3
可視化設(shè)計用戶登錄程序【知識7-13】創(chuàng)建與使用Java中的包4.使用import導(dǎo)入包中的類將類組織成包是為了更好地利用包中的類。通常一個類只能直接引用與它在同一個包中的類。如果要使用其他包中的類,則可以在類名前面加上完整的包名,即使用“包名稱.類名”的形式,但這種方式有些煩瑣,一般只有兩個包中含有同名的類時,為了對兩個同名類加以區(qū)分時才使用。更簡便的方法是使用import語句
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人員工年終工作總結(jié)
- 公司行政部門工作總結(jié)
- 會計職業(yè)生涯規(guī)劃
- 貨場攤位租用合同范本
- 浙教版數(shù)學(xué)七年級上冊3.2《實數(shù)》聽評課記錄
- 武術(shù)聽評課記錄及評價
- 長豐洗手間防水施工方案
- 酸堿中和反應(yīng)的熱力學(xué)研究及測定
- 隴南屋面涂膜防水施工方案
- 北師大版數(shù)學(xué)四年級下冊《小數(shù)的意義(一)》聽評課記錄2
- 中國人口研究專題報告-中國2025-2100年人口預(yù)測與政策建議-西南財經(jīng)大學(xué)x清華大學(xué)-202501
- 2025年度廚師職業(yè)培訓(xùn)學(xué)院合作辦學(xué)合同4篇
- 《組織行為學(xué)》第1章-組織行為學(xué)概述
- 2024年山東水利職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 遼寧省名校聯(lián)盟2025年高三1月份聯(lián)合考試 語文試卷(含答案詳解)
- 25版六年級寒假特色作業(yè)
- 浙江省杭州市9+1高中聯(lián)盟2025屆高三一診考試英語試卷含解析
- 市場營銷試題(含參考答案)
- 2024年山東省泰安市高考物理一模試卷(含詳細答案解析)
- 護理指南手術(shù)器械臺擺放
- 腫瘤患者管理
評論
0/150
提交評論