/**
*
*/
package com.duoguo.button;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
/**
* @author shyboy(chao.shen@duoguo.cn)
*
*/
@SuppressWarnings("serial")
public class CheckBoxDemo extends JPanel implements ItemListener {
private JCheckBox chinCheckBox;// 下巴复选框
private JCheckBox glassesCheckBox;// 眼睛复选框
private JCheckBox hairCheckBox;// 头发复选框
private JCheckBox toothCheckBox;// 牙齿复选框
private JPanel topPanel;
private JPanel bottomPanel;
private StringBuilder choices;
private JLabel pictureLabel;
/**
* 构造方法
*/
public CheckBoxDemo() {
chinCheckBox = new JCheckBox("下巴");
chinCheckBox.setMnemonic(KeyEvent.VK_1);// 快捷键ALT+1
chinCheckBox.setSelected(true);
glassesCheckBox = new JCheckBox("眼睛");
glassesCheckBox.setMnemonic(KeyEvent.VK_2);// 快捷键ALT+2
glassesCheckBox.setSelected(true);
hairCheckBox = new JCheckBox("头发");
hairCheckBox.setMnemonic(KeyEvent.VK_3);
hairCheckBox.setSelected(true);
toothCheckBox = new JCheckBox("牙齿");
toothCheckBox.setMnemonic(KeyEvent.VK_4);
toothCheckBox.setSelected(true);
chinCheckBox.addItemListener(this);
glassesCheckBox.addItemListener(this);
hairCheckBox.addItemListener(this);
toothCheckBox.addItemListener(this);
topPanel = new JPanel(new GridLayout(1, 4));
topPanel.add(chinCheckBox);
topPanel.add(glassesCheckBox);
topPanel.add(hairCheckBox);
topPanel.add(toothCheckBox);
choices = new StringBuilder("cght");
pictureLabel = new JLabel();
updatePicture();
bottomPanel = new JPanel(new FlowLayout());
bottomPanel.add(pictureLabel);
setLayout(new BorderLayout());
this.add(topPanel, BorderLayout.NORTH);
this.add(bottomPanel, BorderLayout.CENTER);
}
/**
* 更新图片
*/
public void updatePicture() {
ImageIcon imageIcon = createImageIcon("images/geek-"
+ choices.toString() + ".gif");
pictureLabel.setIcon(imageIcon);
pictureLabel.setToolTipText(choices.toString());
if (null == imageIcon) {
pictureLabel.setText("无图片");
} else {
pictureLabel.setText(null);
}
}
/**
* 设置复选框对应的相应图标
*
* @param path
* :图片路径
* @return ImageIcon
*/
public static ImageIcon createImageIcon(String path) {
if (null != path && !"".equals(path)) {
URL url = CheckBoxDemo.class.getResource(path);
if (null != url) {
return new ImageIcon(url);
} else {
System.err.println("找不到图片的……");
return null;
}
}
return null;
}
/**
* 创建并显示相应的界面
*/
public static void createAndShowGUI() {
JFrame jFrame = new JFrame("Swing中的JCheckBox");
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 当窗口被关闭时应用程序退出
CheckBoxDemo checkBoxDemo = new CheckBoxDemo();
checkBoxDemo.setOpaque(true);
jFrame.setContentPane(checkBoxDemo);
jFrame.pack();
jFrame.setVisible(true);
jFrame.setSize(500, 300);
jFrame.setLocation(300, 200);
}
/*
* (non-Javadoc)
*
* @see
* java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
*/
@Override
public void itemStateChanged(ItemEvent e) {
int index = 0;
char c = '-';
Object source = e.getItemSelectable();
if (source == chinCheckBox) {
index = 0;
c = 'c';
} else if (source == glassesCheckBox) {
index = 1;
c = 'g';
} else if (source == hairCheckBox) {
index = 2;
c = 'h';
} else if (source == toothCheckBox) {
index = 3;
c = 't';
}
if (e.getStateChange() == ItemEvent.DESELECTED) {
c = '-';
}
choices.setCharAt(index, c);
updatePicture();
}
/**
* @param args
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
}
- 大小: 21.1 KB
分享到:
相关推荐
java 使用JCheckBox组件 java 使用JCheckBox组件 java 使用JCheckBox组件
java JCheckBox事件处理 java JCheckBox事件处理 java JCheckBox事件处理
JCheckBox是Swing库提供的一个复选框组件,可以用于在GUI应用程序中显示和选择多个选项。
NULL 博文链接:https://keke020.iteye.com/blog/932840
主要介绍了Java Swing JCheckBox复选框的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在JFrame界面上随机生成多个JCheckBox,并获取选择的JCheckBox的文本内容,作为一个字符串。当取消某个JCheckBox的时候,又把字符串中含有此JCheckBox的文本去掉
这是我之前做的一个项目要实现的一个功能,Jlist 动态添加删除移动Jcheckbox
031713_【第17章:Java数据库编程】_使用元数据分析数据库笔记.pdf 031714_【第17章:Java数据库编程】_使用JDBC连接Oracle笔记.pdf 031801_【第18章:图形界面】_AWT、Swing简介笔记.pdf 031802_【第18章:图形界面...
1.3 JCheckBox用法 1 1.4 JList用法 2 1.5 JTable用法 3 1.6 JPanel绘制背景图 4 2数据库 5 2.1 增 8 2.1.1 单个增加 8 2.1.2 批量增加 8 2.2 删 8 2.2.1单个删除 8 2.1.2批量删除 9 2.3 改 9 2.4 查 9 2.4.1 根据...
java 使用swing的样例,eclipse导入maven项目 JFrame JPanel JLabel JRadioButton JCheckBox JButton ActionListener使用小程序
主要介绍了Java Swing组件复选框JCheckBox用法,结合具体实例形式分析了Swing复选框JCheckBox简单用法与相关操作注意事项,需要的朋友可以参考下
GUI: Graphics User Interface 设计和实现GUI的主要难点 创建组成界面的各成分和元素,指定它们的属性和位置关系,根据具体需要布局排列,从而构成完整的GUI的外观表象;...JButton、JLabel、JTextField、JCheckBox…
最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...
private JCheckBox [] jcbArray={new JCheckBox("电脑"),new JCheckBox("音乐"), new JCheckBox("旅游"),new JCheckBox("购物"),new JCheckBox("运动"),new JCheckBox("其他")}; private Vector<String> v; ...
JComboCheckBox JComboBox与JCheckBox结合源码。 网上下载代码,修改了一点点。。。上传,以备后用。。
实例154 使用静态成员变量计算内存中实例化的对象数目 239 实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 ...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...
1.编写程序,使单选按钮可以使用isSelected()方法判断是否被选中,用getText()方法获得按钮的文本,JRadioButton对象也可以产生ItemEvent事件,该事件的处理方法与JCheckBox的处理方法相同。 2、编写程序,使...