Java Swing界面编程(27)---JRadioButton事件处理

在单选按钮操作中,可以使用ItemListener接口进行事件的监听。

package com.beyole.util;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

class MyRadio1 implements ItemListener {
	private String right = "f:" + File.separator + "2.png";// 定义图片路径
	private String wrong = "f:" + File.separator + "3.png";// 定义图片路径
	private JFrame frame = new JFrame("Beyole");// 定义窗体
	private Container container = frame.getContentPane();// 得到窗体容器
	private JRadioButton jb1 = new JRadioButton("男", new ImageIcon(right), true);
	private JRadioButton jb2 = new JRadioButton("女", new ImageIcon(wrong),
			false);
	private JPanel panel = new JPanel();// 定义一个面板

	public MyRadio1() {
		panel.setBorder(BorderFactory.createTitledBorder("选择性别"));// 定义一个面板的边框显示条
		panel.setLayout(new GridLayout(1, 3));// 定义排版,一行三列
		ButtonGroup group = new ButtonGroup();// 定义一个按钮组
		group.add(this.jb1);// 将单选按钮组加入到一个组
		group.add(this.jb2);// 将单选按钮组加入到一个组
		panel.add(this.jb1);// 将单选按钮加入到面板当中
		panel.add(this.jb2);// 将单选按钮加入到面板当中
		jb1.addItemListener(this);// 加入监听事件
		jb2.addItemListener(this);// 加入监听事件
		container.add(panel);// 加入面板到容器中
		this.frame.setSize(200, 100);
		this.frame.setVisible(true);
		this.frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent arg0) {
				System.exit(1);
			}
		});
	}

	public void itemStateChanged(ItemEvent e) {
		if (e.getSource() == jb1) {
			jb1.setIcon(new ImageIcon(right));
			jb2.setIcon(new ImageIcon(wrong));
		} else {
			jb2.setIcon(new ImageIcon(right));
			jb1.setIcon(new ImageIcon(wrong));
		}
	}
}

public class JRadioButtonDemo1 {
	public static void main(String[] args) {
		new MyRadio1();
	}
}

以上程序,使用ImageIcon设置了两个单选按钮的图片,每次选项改变后都会触发itemStateChanged事件,之后修改每个选项的显示图片。

程序截图:

Java Swing界面编程(27)---JRadioButton事件处理

时间: 2024-10-30 20:16:06

Java Swing界面编程(27)---JRadioButton事件处理的相关文章

Java Swing界面编程(29)---JCheckBox事件处理

JCheckBox和JRadioButton的事件处理监听接口是一样的,都是使用ItemListener接口. package com.beyole.util; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowAdapter; import j

Java Swing界面编程(24)---事件处理:键盘事件及监听处理

在Swing的事件处理中也可以对键盘的操作进行监听,直接使用KeyListener接口即可. package com.beyole.util; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax

Java Swing界面编程(25)---事件处理:鼠标事件及监听处理

如果想对一个鼠标的操作进行监听,如果鼠标按下.松开等,则可以使用MouseListener接口. package com.beyole.util; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import

Java Swing界面编程(23)---事件处理:编写用户验证登录用例

LoginCheck: package com.beyole.util; class LoginCheck {//编写登录验证类 private String userName;//用户名 private String password;//密码 public LoginCheck(String userName,String password)//复写构造方法 { this.userName=userName;//为用户名赋值 this.password=password;//为密码赋值 }

Java Swing界面编程(21)---事件处理:窗体事件

Splay树的插入操作,只需要处理好插入节点的孩子节点就可以了,最重要的是不要破坏了BST的基本规则. 因为高度并不是Splay树的首要因素,所以插入的时候也是使用splay操作,然后在根节点插入. 参考:http://www.geeksforgeeks.org/splay-tree-set-2-insert-delete/ 对比一下使用插入创建的树和手工创建数的区别,先序遍历的结果: #pragma once #include<stdio.h> #include <stdlib.h&g

Java Swing界面编程(22)---事件处理:动作事件及监听处理

要想让一个按钮变得有意义,就必须使用事件处理.在swing的事件处理中,可以使用ActionListener接口处理按钮的动作事件. package com.beyole.util; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter

Java Swing界面编程(26)---单选按钮:JRadioButton

单选按钮就是在给出的多个显示信息中指定选择一个,在swing中可以使用JRadioButton完成一组单选按钮的操作. package com.beyole.util; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.BorderFactory; impo

Java Swing界面编程(28)---复选框:JCheckBox

程序可以通过JRadioButton实现单选按钮的功能,那么要实现复选框的功能,则必须使用JCheckBox完成. package com.beyole.util; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.BorderFactory; import

Java Swing界面编程(1)

写多了jsp,对于页面式的系统已经写烦了,本人也開始着手于java swing的学习,作为菜鸟,仅想用博客记录下我的swing学习的历程.话不多说,首先開始我的第一个窗体化程序. 下面给出源码: package com.beyole.util; import java.awt.Color; import javax.swing.JFrame; public class test1 { public static void main(String[] args) { JFrame frame=ne