歐陽桂秀
摘要
介紹了Java的Swing組件JCheckBox的常用屬性、事件響應(yīng)使用組件JCheckBox顯示多個選項,用戶可根據(jù)需要選擇其中的一項或多項。
【關(guān)鍵詞】Java JCheckBox 屬性 事件響應(yīng)
1 引言
Java的Swing組件JCheckBox是復(fù)選框,其特點是為用戶提供多個選項,用戶可以選中其中的一項或多項。
它的繼承關(guān)系如下:
java.awt.Component
4java.awt.Container
L,javax.swing.JComponent
4javax.swing.AbstractButton
4javax.swing.JToggleButton
4javax.swing.JCheckBox
2 JCheckBox組件的常用屬性
boolean isSelected():返回是否被選中的狀態(tài)。返回值為true,選中。返回值為false,沒有選中。
void setSelected(boolean b):設(shè)置是否選中。
3 事件響應(yīng)
JCheckBox能夠產(chǎn)生ActionEvent和ItemEvent事件。當單擊復(fù)選框時,產(chǎn)生ActionEvent事件。當復(fù)選框的狀態(tài)發(fā)生改變 (即:復(fù)選框被選中或者取消選中)時,產(chǎn)生ItemEvent事件。
JCheckBox注冊ActionEvent事件監(jiān)聽者的方法是addActionListener(),處理該事件的接口是ActionListener,具體的事件處理的程序放在該接口中的方法public voidactionPerformed(ActionEvent e)里面。
JCheckBox注冊ItenrEvent事件監(jiān)聽者的方法是addItemListener(),處理該事件的接口是ItemListener,具體的事件處理的程序放在該接口中的方法public voiditemStateChanged(ItemEvent e)里面。4使用JCheckBox組件的實例
【例1】使用JCheckBox組件,在三種電子產(chǎn)品中進行選擇,選擇結(jié)果顯示在標簽中。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Buy extends JAppletimplements ItemListener,ActionListener
{
double cellphone=0,computer=0,mp3=0,sum=0;
Mabel label1,label2,label3,label4;
Mutton button;
JTextField text;
JCheckBox check1,check2,check3;
JPanel contentPane,JPanell,JPanel2,JPanel3,p4;
public void init()
{
contentPane=(JJPanel)getContentPane();
contentPane.setLayout(newGridLayout(4,1));
labell=new JLabel("請選擇想要購買的電子產(chǎn)品,計算需要多少錢?”
label2=new JLabel("合計(單位元):");
labe13=new JLabel("");
label4=new JLabel();
button=new JButton("結(jié)束購物");
text=new JTextField(30);
checkl=new JCheckBox("手機2100元");
check2=new JCheckBox("電腦4300元");
check3=new JCheckBox("MP3音樂播放器280元");
panel1=new JPanel();
panell.add(label4);
panell.add(label1);
contentPane.add(JPanel1);
panel2-new JPanel();
panel2.add(check1);
panel2.add(check2);
panel2.add(check3);
contentPane.add(pancl2);
panel3=new JPanel();
panel3.add(label2);
panel3.add(label3);
contentPane.add(Panel3);
p4=new JPanel():
p4.add(button);
p4.add(text);
contentPane.add(p4);
check1.addItemListener(this);
check2.addltemListener(this);
check3.addItemListener(this);
button.addActionListener(this);
}
public void itemStateChanged(ItemEvente)
{String str;
if(checkl.isSelected()==true)cellphone=2100;
else cellphone=0;
if(check2.isSelected()==true)computer=4300;
else computer-0;
if(check3.isSelected()==true)mp3-280;
else mp3=0;
sum=cellphone+computer+mp3;
str=String.valueOf(sum);
label3.setText(str);
}
public void actionPerformed(ActionEvente)
{String str2="感謝您的惠顧,期待您的再次光臨!";
if(e.getSource()==button)
text.setText(str2);
}
}
本例,Buy類實現(xiàn)了兩種接口ItemListener和ActionListener,復(fù)選框添加監(jiān)聽者的方法是addItemListener(),對應(yīng)的事件處理放在方法public void itemStateChanged(ItemEvent e)里,當單擊復(fù)選框,選中(或取消選中)某些選項時,會執(zhí)行該方法。按鈕添加監(jiān)聽者的方法是addActionListener,對應(yīng)的事件處理放在方法public void actionPerformed(ActionEvent e)里,當單擊“結(jié)束購物”按鈕時,會執(zhí)行該方法。
運行結(jié)果如圖1所示。
5 結(jié)束語
通過學習Java的Swing組件JCheckBox,我們可以使用JCheckBox顯示多個選項,如果用戶選中其中一項或多項,相關(guān)的事件處理就會執(zhí)行。
參考文獻
[1]耿祥義.Java2實用教程[M].清華大學出版社,2017.
[2]李剛.瘋狂Java講義[M].北京:電子工業(yè)出版社,2017.
[3]明日科技.Java從入門到精通[M].清華大學出版社,2016.