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. ANDROID内存优化(大汇总——全)

    写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在A ...

  2. 13、虚拟驱动vivi.c注册过程分析及怎么写V4L2驱动及启动过程

    UVC设备也是一个usb设备,在uvc_driver.c中的init函数会调用usb_register注册,根据id_table发送可支持的设备后调用probe函数,其会去uvc_register_c ...

  3. 计算机图形学(二)输出图元_3_画线算法_2_DDA算法

    DDA算法        数字微分分析仪(digital differential analyzer, DDA)方法是一种线段扫描转换算法.基于使用等式(3.4)或等式(3.5)计算的&x或& ...

  4. [AngularJS] Write a simple Redux store in AngularJS app

    The first things we need to do is create a reducer: /** * CONSTANT * @type {string} */ export const ...

  5. hdu Minimum Transport Cost(按字典序输出路径)

    http://acm.hdu.edu.cn/showproblem.php? pid=1385 求最短路.要求输出字典序最小的路径. spfa:拿一个pre[]记录前驱,不同的是在松弛的时候.要考虑和 ...

  6. tc

    [em_Compare]cmd=d:\Apps\BeyondCompare4\now\BCompare.exeparam="""%X%P%S"" &q ...

  7. HDU - 3078 Network(暴力+LCA)

    题目大意:给出n个点的权值.m条边,2种操作 0 u num,将第u个点的权值改成num k u v,询问u到v这条路上第k大的权值点 解题思路:该点的话直接该,找第k大的话直接暴力 #include ...

  8. Android 闹钟最终版

    以下是我发现的几点闹钟中重要的点,分享一下: (1)在闹钟中有AudioManager管理机制,这个机制可以申请和释放OnAudioFocusChangeListener监听. 还有mTelephon ...

  9. Java CPU使用率过高分析

    http://note.youdao.com/publicshare/?id=d02cba2714709d4d4fe8a8627fc1cf41&type=note#/ (友情提示:本博文章欢迎 ...

  10. PHP怎么读写XML?(四种方法)

    PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...