本文為大家分享了Swing單選按鈕和復選框的使用方法,供大家參考,具體內容如下
JRadioButton構造函數:
JRadioButton():建立一個新的JRadioButton.
JRadioButton(Icon icon):建立一個有圖像但沒有文字的JRadioButton.
JRadioButton(Icon icon,boolean selected):建立一個有圖像但沒有文字的JRadioButton,且設置其初始狀態(有無被選取).
JRadioButton(String text):建立一個有文字的JRadioButton.
JRadioButton(String text,boolean selected):建立一個有文字的JRadioButton,且設置其初始狀態(有無被選取)。
JRadioButton(String text,Icon icon):建立一個有文字且有圖像的JRadioButton,初始狀態為無被選取。
JRadioButton(String text,Icon icon,boolean selected):建立一個有文字且有圖像的JRadioButton,且設置其初始狀態(有無被選取)
要將RadioButton改成單選,我們必須用到ButtonGroup這個類。這個類位于javax.swing這個package下面,ButtonGroup類的主 要功能是:同一時間內只會有一個組件的狀態為"on",其他皆為"off",也就是同一時間只有一個組件會被選取。而ButtonGroup類可 被AbstractButton下面的子類所使用,最常被使用的就是JRadioButton、JradioButtonMenu、Item與JToggleButton這些組件
ButtonGroup類的構造方法如下:
ButtonGroup()創建一個新的ButtonGroup()
ButtonGroup()類的常用的方法如下:
public void add(AbstractButton b):添加按鈕到組中
public void clearSelection():清除選中內容,即沒有選中按鈕組中的任何按鈕
pubic int getButtonCount():獲取此組中的按鈕數
public Enumeration<AbstractButton>getElemeent():獲取此組中的所用按鈕
public void remove (AbstractButton b):從按鈕中刪除按鈕
JCheckBox構造函數
JCheckBox():建立一個新的JChcekBox.
JCheckBox(Icon icon):建立一個有圖像但沒有文字的JCheckBox.
JCheckBox(Icon icon,boolean selected):建立一個有圖像但沒有文字的JCheckBox,且設置其初始狀態(有無被選取)。
JCheckBox(String text):建立一個有文字的JCheckBox.
JCheckBox(String text,boolean selected):建立一個有文字的JCheckBox,且設置其初始狀態(有無被選取)。
JCheckBox(String text,Icon icon):建立一個有文字且有圖像的JCheckBox,初始狀態為無被選取。
JCheckBox(String text,Icon icon,boolean selected):建立一個有文字且有圖像的JCheckBox,且設置其初始狀態(有無被選取 )。
當JCheckBox中的選項被選取 或取消時,它會觸發ItemEvent的事件,ItemEvent這個類共提供了4種方法可以使用,分別是getItem()、getItemSelectable()、 getStateChange()、paramString()。getItem()與paramString()方法會返回一些這個JCheckBox的狀態值。一般我們較少用到這兩 個方法。
getItemSelectable()相當于getSource()方法,一樣都是返回觸發事件的組件,用來判斷是那個組件產生事件。getSource()方法是EventObject類所提供,而所有事件類都會繼承這個類,因此所有的事件我們均能用getSource() 方法來判斷到底是哪個組件觸發了事件。
最后getStateChange()方法會返回此組件到底有沒有被選取。這個方法會返回一個整數值。而我們可以用ItemEvent所提供的類 變量;若被選取則返回SELECTED,若沒有被選取則返回DESELECTED.
單選按鈕和復選框注冊和注銷ItemEvent事件監聽器的方法如下:
public void addItemListener(ItemListener l): 注冊指定的ItemListener事件監聽器
public void removeItemListener(ItemListener l): 注銷指定的ItemListener事件監聽器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
package ch10; import java.awt.event.*; import javax.swing.*; public class Vote extends JFrame implements ActionListener { private JPanel jp = new JPanel(); JRadioButton jrb1 = new JRadioButton( "這個網站很好,很新穎!" , true ); JRadioButton jrb2 = new JRadioButton( "這個網站很普通,太一般" ); JRadioButton jrb3 = new JRadioButton( "這個網站很差,偶爾看一下" ); JRadioButton jrb4 = new JRadioButton( "這個網站太差了,不來了" ); private JRadioButton[] jrb = new JRadioButton[]{jrb1,jrb2,jrb3,jrb4}; private ButtonGroup bg = new ButtonGroup(); JCheckBox jcb1 = new JCheckBox( "界面比較漂亮" ); JCheckBox jcb2 = new JCheckBox( "內容比較豐富" ); JCheckBox jcb3 = new JCheckBox( "增值服務比較好" ); JCheckBox jcb4 = new JCheckBox( "會員服務比較好" ); private JCheckBox[] jcb = new JCheckBox[]{jcb1,jcb2,jcb3,jcb4}; private JButton [] jb = { new JButton( "我要投票" ), new JButton( "我要重選" )}; private JLabel[] jl = { new JLabel( "這個網站給你的印象是:" ), new JLabel( "您認為本站哪里做的比較好" ), new JLabel( "您投票的內容是:" )}; private JTextArea jt = new JTextArea(); private JScrollPane js= new JScrollPane(jt); public Vote() { jp.setLayout( null ); for ( int i= 0 ;i< 4 ;i++) { jrb[i].setBounds( 30 + 170 *i, 40 , 170 , 30 ); jcb[i].setBounds( 30 + 120 *i, 100 , 120 , 30 ); jp.add(jrb[i]); jp.add(jcb[i]); jcb[i].addActionListener( this ); jrb[i].addActionListener( this ); bg.add(jrb[i]); if (i> 1 ) continue ; jl[i].setBounds( 20 , 20 + 50 *i, 200 , 30 ); jb[i].setBounds( 380 + 120 *i, 200 , 100 , 20 ); jp.add(jl[i]); jp.add(jb[i]); jb[i].addActionListener( this ); } jl[ 2 ].setBounds( 20 , 150 , 120 , 30 ); jp.add(jl[ 2 ]); js.setBounds( 120 , 150 , 500 , 50 ); jp.add(js); jt.setLineWrap( true ); jt.setEditable( false ); this .add(jp); this .setTitle( "網站滿意調查表" ); this .setBounds( 150 , 150 , 750 , 300 ); this .setVisible( true ); this .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent a) { if (a.getSource()==jb[ 1 ]) { bg.clearSelection(); for ( int i= 0 ;i<jcb.length;i++) jcb[i].setSelected( false ); jt.setText( "" ); } else { StringBuffer temp1 = new StringBuffer( "你認為這個網站" ); StringBuffer temp2 = new StringBuffer( "" ); for ( int i= 0 ;i< 4 ;i++) { if (jrb[i].isSelected()) temp1.append(jrb[i].getText()); if (jcb[i].isSelected()) temp2.append(jcb[i].getText()+ "," ); } if (temp2.length()== 0 ) jt.setText( "請將兩項調查都選擇" ); else { temp1.append( "你認為這個網站" ); temp1.append(temp2.substring( 0 ,temp2.length()- 1 )); jt.setText(temp1.toString()); } } } public static void main(String args[]) { new Vote(); } } |
效果圖:
以上就是本文的全部內容,希望對大家的學習有所幫助。