JavaSwing圖形界面開發(fā)(第8章).ppt
《JavaSwing圖形界面開發(fā)(第8章).ppt》由會員分享,可在線閱讀,更多相關(guān)《JavaSwing圖形界面開發(fā)(第8章).ppt(34頁珍藏版)》請在裝配圖網(wǎng)上搜索。
2,列表框-將“所有選項”都列在框中,提供用戶選擇。下拉列表框-用戶未操作列表框時,只顯示出一個數(shù)據(jù)。但當單擊下拉箭頭時,數(shù)據(jù)將以下拉方式顯示。說明:列表框、下拉列表框均屬于“選擇性組件”。雖然用途相同,但各有其使用環(huán)境。一般用法:當數(shù)據(jù)較少時,使用列表框;當數(shù)據(jù)較多時,盡量使用下拉列表框。,3,8.1如何使用列表框JList,列表框組件以“目錄形式”顯示字符串,允許用戶從中選取一項或多項,其中每一項數(shù)據(jù)稱為元素(也稱為:列表項Item)。JList類為用戶提供了可選擇的一組選項,以一列或多列的形式顯示。JList可有多個選項,這些選項通常被存放在一個可以滾動的窗格內(nèi)。創(chuàng)建列表框的方式:數(shù)組方式Vector方式ListModel方式,4,5,程序運行結(jié)果:,說明:將一些數(shù)據(jù)存儲到數(shù)組中,再通過列表框的構(gòu)造器“JList(Stringtext)”將這些數(shù)據(jù)列舉出來。,6,7,程序運行結(jié)果:,說明:與數(shù)組方式相似,只是“存儲數(shù)據(jù)的方式”不同。主要創(chuàng)建了三個列表框?qū)ο?,有兩個列表框?qū)ο笫峭ㄟ^數(shù)組方式創(chuàng)建,而另一個則使用Vector方式創(chuàng)建。通過建立的Vector數(shù)據(jù)結(jié)構(gòu)對象,將數(shù)據(jù)存儲到這個對象中,然后將這個對象顯示到列表框中。,圖8.3:使用Vector創(chuàng)建列表框,8,8.1.3使用ListModel方式創(chuàng)建列表框,ListModel是一個接口,其主要功能是定義一些方法,讓JList組件取得每個項目的值,并可限定項目的顯示時間與方式。,表8.1ListModel接口定義的方法,9,只有實現(xiàn)ListModel接口中的所有方法,才能利用構(gòu)造器建立JList。不過,若要實現(xiàn)ListModel所有的方法比較麻煩,因為一般不會用addListDataListener()和removeListDataListener()這兩個方法。因此,Java提供了“AbstractListModel”抽象類,此抽象類已經(jīng)實現(xiàn)addListDataListener()與removeListDataListener()兩個方法。只要繼承AbstractListModel類,則無須實現(xiàn)上述兩個方法,只需實現(xiàn)getElementAt()與getSize()方法即可。,AbstractListModel抽象類:,10,11,程序運行結(jié)果:,圖8.4:使用ListModel方法創(chuàng)建JList,12,Java本身還提供了另一個類-“DefaultListModel”實體類。此類繼承了AbstractListModel抽象類,并實現(xiàn)了其中所有的抽象方法。因此,無需再讓程序員自己實現(xiàn)任何方法,相當方便。DefaultListModel類提供了不少好用的方法,如:增加一個項目-addElement()刪除一個項目-removeElement()查詢項目-getElementAt()匯出項目-copyInto()另外,還可直接動態(tài)地更改JList的項目值,而不需要自行產(chǎn)生一個Vector對象,相當于JList(Vectorv)構(gòu)造函數(shù)而言,更加方便實用。,DefaultListModel實體類:,13,DefaultListModel程序示例:,14,程序運行結(jié)果:,圖8.5:使用DefaultListModel方法創(chuàng)建JList,15,8.1.4列表框選取事件的處理,JList類中“addListSelectionListener()”方法,可檢測用戶是否對JList的選取有任何改變。ListSelectionListener接口中只定義一個方法,即:valueChanged(ListSelectionEvente);只有實現(xiàn)這個方法,才能在用戶改變選取值時,取得用戶最后的選取狀態(tài)。,16,addListSelectionListener()方法程序示例:,17,18,8.1.5列表框雙擊事件的處理,列表框的常用事件:-如何處理在JList上雙擊鼠標的操作。JList本身未提供EventListener監(jiān)聽器,為能處理雙擊操作,必須利用“鼠標監(jiān)聽器”來捕獲雙擊鼠標。如何知道在哪個Item上雙擊鼠標?可使用JList類提供的“LocatToindex()方法”獲知。,19,列表框雙擊事件處理程序示例:,代碼:,20,圖8.8列表框的雙擊事件,程序說明:首先創(chuàng)建一個DefaultListModel類的繼承類,然后將其實例化成兩個不同的列表框。當雙擊左邊的列表框中的數(shù)據(jù)時,即會在右邊添加相應(yīng)的數(shù)據(jù),反之亦然。,21,8.2如何使用下拉列表框JComboBox,22,8.2.1使用數(shù)組和Vector創(chuàng)建下拉列表框,23,運行結(jié)果:,說明:使用Vector和數(shù)組差不多。JComboBox控件有addItem方法,此方法在JList中不具備。,24,8.2.2使用ComboBoxModel創(chuàng)建下拉列表框,ComboBoxModel是一個接口,定義了兩個方法,即:setSelectedItem()&getSelectedItem()目的:選取某個項目后,可正確顯示出所選取的項目。說明:利用ComboBoxModel實現(xiàn)JComboBox,類似于ListModel。不過,ComboBoxModel接口是繼承自ListModel接口,若要利用ComboBoxModel來構(gòu)造JComboBox,除了要實現(xiàn)ComboBoxModel的兩個方法外,還必須實現(xiàn)ListModel定義的4個方法。,25,介紹JList時,曾提到“AbstractListModel”抽象類,其已經(jīng)實現(xiàn)了ListModel接口中的addListDataListener()和removeListDataListener()兩個方法。因此,只要繼承AbstractListModel,即可不用實現(xiàn)這兩個方法,只須實現(xiàn):getElementAt()getSize()setSelectedItem()getSelectedItem(),26,27,圖8.11使用ComboxBox創(chuàng)建下拉列表框,運行結(jié)果:,28,同JList一樣,Java對于JComboBox也提供了另一個類,即:DefaultComboBoxModel此類繼承了AbstractListModel抽象類,實現(xiàn)了ComboBoxModel接口。因此,不需要再實現(xiàn)getSize()、getElementAt()、setSelectedItem()與getSelectedItem()方法。利用DefaultComboBoxModel類,可動態(tài)更改JComboBox的選項值。當沒有必要自己定義特殊的ComboBoxModel時,使用DefaultComboBoxModel就顯得非常方便。,DefaultComboBoxModel實體類:,29,30,JComboBox的事件處理也可分為兩種:取得用戶選取的項目;(點擊鼠標)用戶在JComboBox上輸入完畢后按回車鍵。對于的處理,可使用ItemListener實現(xiàn)。對于的處理,可使用ActionListener實現(xiàn)。,8.2.3下拉列表框的事件處理,31,32,運行結(jié)果:,圖8-1314下拉列表框處理,33,8.3本章小結(jié),本章主要內(nèi)容:針對“列表框”和“下拉列表框”的常用構(gòu)造器、事件處理方法等,結(jié)合實例形成一個比較清晰的認識。不過,每一節(jié)中只介紹了比較常用的一些方法。,34,8.4本章習(xí)題,習(xí)題:1,2,3,4,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- JavaSwing 圖形界面 開發(fā)
鏈接地址:http://www.szxfmmzy.com/p-11549311.html