Java選擇框和單選按鈕

qq_37723158發表於2018-02-04
選擇框、單選框和單選按鈕都是選擇元件,選擇元件有兩種狀態,一種是選中(on),另一種是未選中(off),它們提供一種簡單的 “on/off”選擇功能,讓使用者在一組選擇專案中作選擇。

選擇框

選擇框(JCheckBox)的選中與否開狀是一個小方框,被選中則在框中打勾。當在一個容器中有多個選擇框,同時可以有多個選擇框被選中,這樣的選擇框也稱核取方塊。與選擇框相關的介面是ItemListener,事件類是ItemEvent。

JCheckBox類常用的構造方法有以下3個:
  1. JCheckBox():用空標題構造選擇框。
  2. JCheckBox(String s):用給定的標題s構造選擇框。
  3. JCheckBox(String s, boolean b):用給定的標題s構造選擇框,引數b設定選中與否的初始狀態。

JCheckBox類的其他常用方法如下:
  1. getState():獲取選擇框的狀態。
  2. setState(boolean b):設定選擇框的狀態
  3. getLabel():獲取選擇框的標題。
  4. setLabel(String s):設定選擇框的標題。
  5. isSelected():獲取選擇框是否被選中的狀態。
  6. itemStateChanged(ItemEvent e):處理選擇框事件的介面方法。
  7. getItemSelectable():獲取可選項,獲取事件源。
  8. addItemListener(ItemListener l):為選擇框設定監視器。
  9. removeItemListener(ItemListener l):移去選擇框的監視器。

【例 11-11】宣告一個皮膚子類,皮膚子類物件有3個選擇框。
class Panel1 extends JPanel{
    JCheckBox box1,box2,box3;
    Panel1(){
        box1 = new JCheckBox(“足球”);
        box2 = new JCheckBox(“排球”);
        box2 = new JCheckBox(“籃球”);
    }
}

單選框

當在一個容器中放入多個選擇框,且沒有ButtonGroup物件將它們分組,則可以同時選中多個選擇框。如果使用ButtonGroup物件將選擇框分組,同一時刻組內的多個選擇框只允許有一個被選中,稱同一組內的選擇框為單選框。單選框分組的方法是先建立ButtonGroup物件,然後將希望為同組的選擇框新增到同一個ButtonGroup物件中。參見例6.2程式的皮膚子類Panel2的宣告,組內有3個單選框。

單選按鈕

單選按鈕(JRadioButton)的功能與單選框相似。使用單選按鈕的方法是將一些單選按鈕用ButtonGroup物件分組,使同一組的單選按鈕只允許有一個被選中。單選按鈕與單選框的差異是顯示的樣式不同,單選按鈕是一個圓形的按鈕,單選框是一個小方框。

JRadioButton類的常用構造方法有以下幾個:
  1. JRadioButton():用空標題構造單選按鈕。
  2. JRadioButton(String s):用給定的標題s構造單選按鈕。
  3. JRadioButton(String s,boolean b):用給定的標題s構造單選按鈕,引數b設定選中與否的初始狀態。
單選按鈕使用時需要使用ButtonGroup將單選按鈕分組,單選按鈕的分組方法是先建立物件,然後將同組的單選按鈕新增到同一個ButtonGroup物件中。參見例6.2程式的子類panel1的宣告,組內有3個單選按鈕。

選擇專案事件處理

使用者對選擇框或單選按鈕做出選擇後,程式應對這個選擇作出必要的響應,程式為此要處理選擇專案事件。選擇專案處理程式的基本內容有:
  1. 監視選擇專案物件的類要實現介面ItemListener,
  2. 程式要宣告和建立選擇物件,
  3. 為選擇物件註冊監視器,
  4. 編寫處理選擇專案事件的介面方法itemStateChanged(ItemEvent e),在該方法內用getItemSelectable()方法獲取事件源,並作相應處理。

【例 11-12】處理選擇專案事件的小應用程式。一個由3個單選按鈕組成的產品選擇組,當選中某個產品時,文字區將顯示該產品的資訊。一個由3個選擇框組成的購買產品數量選擇框組,當選擇了購買數量後,在另一個文字框顯示每臺價格(檢視原始檔)。

相關文章