Java Swing组件JCheckBox和JRadioButton的简单使用

一、Java Swing组件JCheckBox和JRadioButton

  1. JCheckBox
    JCheckBox是一个复选框组件,构造方法多样,有无参构造、String参数构造、Icon参数构造、String+Icon参数构造、String+Icon+boolean参数构造。

  2. JRadioButton
    JRadioButton是一个单选框组件,构造方法多样,有无参构造、String参数构造、Icon参数构造、String+Icon参数构造、String+Icon+boolean参数构造。
    JRadioButton要实现单选功能,则必须要将其组件放在ButtonGroup组中;

  3. 事件监听
    对于JCheckBox和JRadioButton组件,若要实现事件监听,则前者可通过实现ItemListener接口来实现,后者可通过ActionListener接口来实现。两者分别在itemStateChanged()和actionPerformed()方法中完成相应操作。

  4. 主要方法
    (1)getStateChange()方法,来判断该组件是否被选中;
    (2)getItem()方法,获取产生事件的对象。通常在itemStateChanged()中通过e.getItem()并结合强制转换来使用。
    二、源代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class demo extends JFrame implements ItemListener, ActionListener {

	JTextField textfield1 = new JTextField();
	JTextField textfield2 = new JTextField();
	demo() {
		setTitle("This is a demo");
		setSize(500, 350);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
		setLayout(null);
		setLocation(420, 200);
		setResizable(false);//窗体大小不可改变
		
		JCheckBox checkbox1 = new JCheckBox("Java");
		JCheckBox checkbox2 = new JCheckBox("C/C++");
		JCheckBox checkbox3 = new JCheckBox("Python");
		JCheckBox checkbox4 = new JCheckBox("JavaScript");
		JCheckBox checkbox5 = new JCheckBox("PHP");
		JRadioButton rt1 = new JRadioButton("武侠小说");
		JRadioButton rt2 = new JRadioButton("都市小说");
		JRadioButton rt3 = new JRadioButton("修仙小说");
		JRadioButton rt4 = new JRadioButton("言情小说");
		JRadioButton rt5 = new JRadioButton("恐怖小说");
		Icon icon = new ImageIcon("D:/WPSMind/icon.png");
		Icon icons = new ImageIcon("D:/WPSMind/02.png");
		JLabel label = new JLabel("复选框", icon, SwingConstants.LEFT);
		JLabel labels = new JLabel("单选框", icons, SwingConstants.LEFT);
		//复选框
		add(label);
		label.setBounds(20, 0, 100, 50);
		add(checkbox1);
		add(checkbox2);
		add(checkbox3);
		add(checkbox4);
		add(checkbox5);
		add(textfield1);
		textfield1.setEditable(false);
		checkbox1.setBounds(53, 60, 100, 20);
		checkbox2.setBounds(153, 60, 100, 20);
		checkbox3.setBounds(253, 60, 100, 20);
		checkbox4.setBounds(353, 60, 100, 20);
		checkbox5.setBounds(53, 100, 100, 20);
		textfield1.setBounds(157, 100, 279, 20);
		//复选框添加监听
		checkbox1.addItemListener(this);
		checkbox2.addItemListener(this);
		checkbox3.addItemListener(this);
		checkbox4.addItemListener(this);
		checkbox5.addItemListener(this);
		
		//单选框
		add(labels);
		labels.setBounds(20, 130, 100, 50);
		add(rt1);
		add(rt2);
		add(rt3);
		add(rt4);
		add(rt5);
		add(textfield2);
		textfield2.setEditable(false);
		rt1.setBounds(53, 190, 100, 20);
		rt2.setBounds(153, 190, 100, 20);
		rt3.setBounds(253, 190, 100, 20);
		rt4.setBounds(353, 190, 100, 20);
		rt5.setBounds(53, 230, 100, 20);
		textfield2.setBounds(157, 230, 279, 20);
		//将JRadioButton组件装入ButtonGroup组中
		ButtonGroup group = new ButtonGroup();
		group.add(rt1);
		group.add(rt2);
		group.add(rt3);
		group.add(rt4);
		group.add(rt5);
		//单选框实现监听
		rt1.addActionListener(this);
		rt2.addActionListener(this);
		rt3.addActionListener(this);
		rt4.addActionListener(this);
		rt5.addActionListener(this);
		//设置组件可见
		validate();
	}
	
	@Override
	public void itemStateChanged(ItemEvent e) {
		// TODO Auto-generated method stub
		if(e.getStateChange() == e.SELECTED) {
			JCheckBox jcb = (JCheckBox) e.getItem();
			textfield1.setText("你当前选的是:" + jcb.getText());
		}
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		textfield2.setText("你当前选的是:" + e.getActionCommand());
	}
	
}

public class JStudying {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/**
		 * String str = "we will not use 'hello world'!"; System.out.println(str);
		 */
		demo de = new demo();
	}

}

四、运行结果
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值