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的事件监听操作很相似,当选择好选项之后依据选定的状态设置其显示的图片。

程序截图:

Java Swing界面编程(29)---JCheckBox事件处理的更多相关文章

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

    在单选button操作中.能够使用ItemListener接口进行事件的监听. package com.beyole.util; import java.awt.Container; import j ...

  2. Java Swing界面编程(1)

    写多了jsp,对于页面式的系统已经写烦了,本人也開始着手于java swing的学习,作为菜鸟,仅想用博客记录下我的swing学习的历程.话不多说,首先開始我的第一个窗体化程序. 下面给出源码: pa ...

  3. Java Swing界面编程(31)---菜单条:JMenu

    package com.beyole.test; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMe ...

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

    要想让一个button变得有意义,就必须使用事件处理.在swing的事件处理中.能够使用ActionListener接口处理button的动作事件. package com.beyole.util; ...

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

    程序能够通过JRadioButton实现单选button的功能,那么要实现复选框的功能,则必须使用JCheckBox完毕. package com.beyole.util; import java.a ...

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

    WindowLIstener是专门处理窗口的事件监听窗口.一个窗口的全部变化.如窗口的打开.关闭等都能够使用这个接口进行监听. 实现WIndowListener: package com.beyole ...

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

    假设想对一个鼠标的操作进行监听,假设鼠标按下.松开等.则能够使用MouseListener接口. package com.beyole.util; import java.awt.event.Mous ...

  8. Java Swing界面编程(18)---单行文本输入组件:JTextField

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xuejiawei123/article/details/27565407 下面的程序与上一例有一点差 ...

  9. Java AWT组件开发和Swing界面编程

    一.AWT组件开发 1.AWT AWT是抽象窗口工具箱的缩写,它为编写图形用户界面提供了用户接口,通过这个接口就可以继承很多方法,省去了很多工作.AWT还能使应用程序更好地同用户进行交互. AWT中的 ...

随机推荐

  1. vue-cli3使用vue-svg-loader加载svg

    vue-svg-loader Documentation - FAQ webpack loader that lets you use SVG files as Vue components Micr ...

  2. jsp页面无法解析EL表达式问题

    Servlet版本的问题.原来Servlet中可以设定是否解析EL表达式,只有2.4版本的Servlet默认是解析EL表达式的,而其他版本是默认不解析EL表达式.于是把web.xml中使用的2.5版本 ...

  3. Spring web 工具类 WebApplicationContextUtils

    概述 Spring web 的工具类 WebApplicationContextUtils 位于包 org.springframework.web.context.support 是访问一个Servl ...

  4. ios开发Base64编码以及加密相关学习

    一:.Base64补充 ```objc 1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只 ...

  5. USB 3.0规范中译本 第7章 链路层

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 链路层具有维持链路连接性的责任,从而确保在两个链路伙伴之间的成功数据传输.基于包(packets)和链路命令 ...

  6. [Angular] Pipes as providers

    In this example, we are going to see how to use Pipe as providers inject into component. We have the ...

  7. [Postgres] Filter Data in a Postgres Table with Query Statements

    We have all this data, but how do we answer questions about it? In this lesson we’ll learn how to fi ...

  8. php超实用正则表达式有哪些

    php超实用正则表达式有哪些 一.总结 一句话总结: 二.php几个超实用正则表达式 对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串.这 ...

  9. js调用百度地图api

    <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">   ...

  10. tomcat7,8 centos7 配置apr极好教程

    转自:http://blog.csdn.net/remote_roamer/article/details/51719891 第一次我自己是用的yum安装apr, apr-utils, tomcat- ...