zoukankan      html  css  js  c++  java
  • 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 java.awt.event.WindowEvent;
    import java.io.File;
    
    import javax.swing.BorderFactory;
    import javax.swing.ImageIcon;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    class MyItemListener implements ItemListener {
    	private String right = "f:" + File.separator + "2.png";
    	private String wrong = "f:" + File.separator + "3.png";
    
    	public void itemStateChanged(ItemEvent e) {
    		JCheckBox jcb = (JCheckBox) e.getItem();// 将得到的事件强制转化为JCheckBox类
    		if (jcb.isSelected()) {// 推断是否被选择
    			jcb.setIcon(new ImageIcon(right));// 改动图片
    		} else {
    			jcb.setIcon(new ImageIcon(wrong));// 改动图片
    		}
    	}
    }
    
    class MyCheckBox1 {
    	private String wrong = "f:" + File.separator + "3.png";// 定义图片路径
    	private JFrame frame = new JFrame("Beyole");// 定义窗口
    	private Container container = frame.getContentPane();// 得到窗口容器
    	private JCheckBox jcb1 = new JCheckBox("主站", new ImageIcon(wrong));
    	private JCheckBox jcb2 = new JCheckBox("论坛", new ImageIcon(wrong));
    	private JCheckBox jcb3 = new JCheckBox("博客", new ImageIcon(wrong));
    	private JPanel panel = new JPanel();// 定义一个面板
    
    	public MyCheckBox1() {
    		panel.setBorder(BorderFactory.createTitledBorder("请选择你最喜欢的站点"));// 定义一个边框的显示条
    		panel.setLayout(new GridLayout(1, 3));// 定义排版 1行3列
    		panel.add(this.jcb1);// 增加组件
    		panel.add(this.jcb2);// 增加组件
    		panel.add(this.jcb3);// 增加组件
    		jcb1.addItemListener(new MyItemListener());// 增加监听
    		jcb2.addItemListener(new MyItemListener());// 增加监听
    		jcb3.addItemListener(new MyItemListener());// 增加监听
    		container.add(panel);// 增加面板
    		this.frame.setSize(330, 100);// 定义窗口大小
    		this.frame.setVisible(true);// 显示窗口
    		this.frame.addWindowListener(new WindowAdapter() {// 增加事件监听
    					public void windowClosing(WindowEvent arg0)// 复写窗口关闭方法
    					{
    						System.exit(1);// 系统退出
    					}
    				});
    	}
    }
    
    public class JCheckBoxDemo02 {
    	public static void main(String[] args) {
    		new MyCheckBox1();
    	}
    }
    

    此程序的功能和JRadioButton的事件监听操作很相似,当选择好选项之后依据选定的状态设置其显示的图片。

    程序截图:


  • 相关阅读:
    前端战五渣学前端——跨域
    CSS3学习笔记
    Vue工程化入口文件main.js中Vue.config.productionTip = false含义
    CSS选择器有哪几种?举例轻松理解CSS选择器
    研究生综合英语 作文 作业
    tomcat部署项目的方法
    【Winfrom-无边框窗体】Winform如何拖动无边框窗体?
    C#调用默认浏览器打开网页的几种方法
    CefSharp在高DPI的屏幕上出现黑边(winform)
    c# 关于mongo bson转json的问题
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4496649.html
Copyright © 2011-2022 走看看