java基礎 ---常用Swing組件

java基礎 ---常用Swing組件
1、JButton(按鈕)
JButton是繼承AbstractButton類而來,而AbstractButton本身是一個抽象類,裏面定義了許多組件設置的方法與組件事件驅動方法(Event handle),如addActionListener()、setText等,所提供的方法不下50種,可說是非常重要的一個類。事實上,AbstractButton類不公被JButton所繼承,它同時還被JMenuItem、JToggleButton、JCheckBox、JRadioButton等類所
繼承,提供給這些類強大且方便的功能,而且在使用上更能掌握這些組件的特性。

2、JCheckBox(多選框)
 JCheckBox與JRadioButton爲JToggleButton的子類,因此它們可以使用AbstractButton抽象類裏面許多好用的方法,如addItemListener()、setText()、isSelected()等等。

3、JRadioButton(單選框)
要將RadioButton改成單選,我們必須用到ButtonGroup這個類。這個類位於javax.swing這個package下面,ButtonGroup類的主要功能是:同一時間內只會有一個組件的狀態爲"on",其他皆爲"off",也就是同一時間只有一個組件會被選取。而ButtonGroup類可被AbstractButton下面的子類所使用,最常被使用的就是JRadioButton、JradioButtonMenu、Item與JToggleButton這些組件。

4、JComboBox(下拉列表)
屬性:editable設置是否可以編輯
selectedIndex通過數字標識定義當前顯示項。
selectedItem標識定義當前的顯示項方法。
還有很多屬性,要通過多使用才能掌握。

5、JList(列表框)
JList與JCheckBox有點相似,都可以讓你選擇一到多個選項,較不同的是,JList的選項方式是整列選取。默認情況下列表框是無法滾動的,如果我們要有滾動的效果,必須將JList放入滾動面版中(JScrollPane),如我們在程序改爲:
       contentPane.add(new JScrollPane(list1));
       contentPane.add(new JScrollPane(list2));
 如此就有滾動的效果了,若我們要有多個選項呢?在JList中有3種選擇模式(Selection Mode)可供我們使用,分別是單一選擇、
連續區間選擇、與多重選擇。我們可以在ListSelectionModel這個interface中找到這3個常數值,如下:
SINGLE_SELECTION:一次只能選擇一個項目。
SINGLE_INTERVAL_SELECTION:按住[shift]鍵,可以對某一邊續的項目作選取。
MULTIPLE_INTERVAL_SELECTION:沒有任何限制。可作單一選擇,連續區間選擇,或對不連續的項目作多重選擇(按住[Ctrl]鍵)。多得選擇是java對JList的默認值,因此在上例中你可以在JList中作這3種模式的選擇方式。

6、Slider(滑動條)
JSlider的構造函數:
JSlider():建立一個水平的JSlider對象,刻度從0-100,初始刻度爲50.
JSlider(BoundedRangeModel brm):使用默認模式建立一個水平的JSlider對象.
JSlider(int orientation):建立一個自定義方向的JSlider對象,刻度從0-100,初始刻度爲50.
JSlider(int min,int max):建立一個水平的JSlider對象,自定義刻度,從min-max,初始刻度爲50.
JSlider(int min, int max,int value):建立一個水平的JSlider的對象,自定義刻度與初始值.
JSlider(int orientation,int min,int max,int value):建立一個自定義方向,刻度與刻度初始值的JSlider對象.
   要使用JSlider組件就不得不提到JSlider事件的處理.當用戶在JSlider上滑動杆時,就會產生ChangeEvent事件,若我們要處理
ChangeEvent事件就必須實作ChangeListener界面,此界面定義了一個方法,那就stateChanged().通常我們在這個方法上會取得或置滑動杆的相關信息,例如滑動杆的延伸區(extent),最大最小值或滑動杆目前所在刻度等等。

7、JProgressBar(進度條)
當你在安裝一個新軟件時,系統會告知你目前軟件安裝的進度如何?纔不會讓你覺得程序好像死了,同樣的,若你設計的程序所需要的運行超過2秒以上,你應該顯示程序正在運行中的圖標,或直接顯示程序運行的進度,這樣就能讓用戶清楚知道程序到底是死了還是繼續運行,在swing中,JProgressBar組件提供了類似這樣的功能,它可以簋簡單地輸出進度的變化情況,讓你想要提供進度信息時,不再需要自行繪製繪圖組件,只需要使用JProgressBar再加上幾行程序設置就可以了。具體的使用方法以後用到了再進行總結。

8、JLabel(標籤)
我們最常在JLabel上放置文字或圖形,也因此我們常常需要調整JLabel上文字或圖形。
在JLabel中,有幾個方法可能是常用到的,例如setHorizontalAlignment(int alignment)與setVerticalAlignment(int alignment),分別是設置標籤內組件(文字或Icon)的水平或垂直位置,而setHorizontalTextPosition(int textPosition)與setVerticalTextPosition(int textPosition)可設置文字相對於Icon的相對位置,另外,setIconTextGap(int iconTextGap)可設置標籤內文字與Icon間的間距、setText(String test)與setIcon(Icon icon)可分別設置標籤內的文字與Icon。

還有些對話框的使用,比如JFileChoose(文件對話框),JColorChooer(顏色選擇對話框)因爲暫時還沒涉及到此控件的使用,只有用過後才能對其進行具體的總結。

事件的處理:
實現還是按照三個步驟來對事件進行處理
1、定義一個類設置監聽器
2、覆蓋監聽器的方法
3、建立組件和監聽器的關係
如:addActionListener("監聽器的類")。

在java中提供兩個方法讓你知道到底是哪個組件觸發了事件,那就是getSource()與getActionCommane();getActionCommand()方法是ActionEvent類所提供,而getSource()方法是EventObject類所提供,但ActionEvent類繼承了EventObject類,因此這兩個方法ActionEvent都可以使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章