欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-31 13:37:40
...

一、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();
	}

}

四、运行结果
Java Swing组件JCheckBox和JRadioButton的简单使用

相关标签: Java