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的事件监听操作很相似,当选择好选项之后依据选定的状态设置其显示的图片。
程序截图:
Java Swing界面编程(29)---JCheckBox事件处理的更多相关文章
- Java Swing界面编程(27)---JRadioButton事件处理
在单选button操作中.能够使用ItemListener接口进行事件的监听. package com.beyole.util; import java.awt.Container; import j ...
- Java Swing界面编程(1)
写多了jsp,对于页面式的系统已经写烦了,本人也開始着手于java swing的学习,作为菜鸟,仅想用博客记录下我的swing学习的历程.话不多说,首先開始我的第一个窗体化程序. 下面给出源码: pa ...
- Java Swing界面编程(31)---菜单条:JMenu
package com.beyole.test; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMe ...
- Java Swing界面编程(22)---事件处理:动作事件及监听处理
要想让一个button变得有意义,就必须使用事件处理.在swing的事件处理中.能够使用ActionListener接口处理button的动作事件. package com.beyole.util; ...
- Java Swing界面编程(28)---复选框:JCheckBox
程序能够通过JRadioButton实现单选button的功能,那么要实现复选框的功能,则必须使用JCheckBox完毕. package com.beyole.util; import java.a ...
- Java Swing界面编程(21)---事件处理:窗口事件
WindowLIstener是专门处理窗口的事件监听窗口.一个窗口的全部变化.如窗口的打开.关闭等都能够使用这个接口进行监听. 实现WIndowListener: package com.beyole ...
- Java Swing界面编程(25)---事件处理:鼠标事件及监听处理
假设想对一个鼠标的操作进行监听,假设鼠标按下.松开等.则能够使用MouseListener接口. package com.beyole.util; import java.awt.event.Mous ...
- Java Swing界面编程(18)---单行文本输入组件:JTextField
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xuejiawei123/article/details/27565407 下面的程序与上一例有一点差 ...
- Java AWT组件开发和Swing界面编程
一.AWT组件开发 1.AWT AWT是抽象窗口工具箱的缩写,它为编写图形用户界面提供了用户接口,通过这个接口就可以继承很多方法,省去了很多工作.AWT还能使应用程序更好地同用户进行交互. AWT中的 ...
随机推荐
- linux下U盘状态检测
Linux的文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中.如果没有umount就非法拔出U盘,程序是不知道的,fope ...
- go初探 - 生成随机整数
func RandInt64(min, max int64) int64 { if min >= max || min == 0 || max == 0 { return max } rand. ...
- ZOJ List the Books 水~
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1727 题目大意: 给你书名.出版时间.价格,让你按照一定的顺序排序.. 其中题 ...
- client、server端编程
首先是从main函数开发: int main(itn argc,char* argv[]) { pthread_t thread; int count; int status; cli ...
- 【Debug】— C++ 表达式必须包含类类型
错误一般发生在使用.进行访问时,原因可能在于: 你以为你定义了一个类对象,其实你是声明了一个函数,在编译器看来: 对类对象指针采用.的方式访问其成员变量: 也包括基本类型变量,错误地使用. int a ...
- cocos2d-html5 javascript 通过C++绑定,调用java方法
1.java中的写法 /* * XConnectPlugin.java * * Created on: 2014年4月30日 * Author: lswdonald9@gmail.com */ pac ...
- Lucene学习总结之七:Lucene搜索过程解析 2014-06-25 14:23 863人阅读 评论(1) 收藏
一.Lucene搜索过程总论 搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程. 其可用如下图示: 总共包括以下几个过程: ...
- Lucene学习总结之一:全文检索的基本原理 2014-06-25 14:11 666人阅读 评论(0) 收藏
一.总论 根据http://lucene.apache.org/java/docs/index.html 定义: Lucene 是一个高效的,基于Java 的全文检索库. 所以在了解Lucene之前要 ...
- PatentTips - 在物联网中进行数据过滤的方法和装置
背景技术 [0001] 本发明涉及物联网,特别涉及在物联网进行数据过滤的方法和装置. [0002] 物联网是新一代信息技术的重要组成部分,特指物物相连的网络.具体地,物联网是指通过各种信息传感设备,如 ...
- iOS8下注冊push方式变更
if (IOS8_) { UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UI ...