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


    在单选button操作中。能够使用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();// 定义一个button组
    		group.add(this.jb1);// 将单选button组增加到一个组
    		group.add(this.jb2);// 将单选button组增加到一个组
    		panel.add(this.jb1);// 将单选button增加到面板其中
    		panel.add(this.jb2);// 将单选button增加到面板其中
    		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设置了两个单选button的图片,每次选项改变后都会触发itemStateChanged事件,之后改动每一个选项的显示图片。

    程序截图:



  • 相关阅读:
    AJPFX总结java开发常用类(包装,数字处理集合等)(三)
    AJPFX总结java开发常用类(包装,数字处理集合等)(二)
    AJPFX总结java开发常用类(包装,数字处理集合等)(一)
    AJPFX关于面向对象之封装,继承,多态 (下)
    AJPFX关于面向对象之封装,继承,多态 (上)
    Android IntentFilter匹配规则
    细说Activity与Task(任务栈)
    androidStudio 打包与混淆
    Android activity之间的跳转和数据传递
    android开发中的 Activity 与 Context 区别与联系
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5219242.html
Copyright © 2020-2023  润新知