/**
*
*/
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`组件,以及它在实际应用程序中的应用。 首先,要使用`JCheckBox`,你需要导入相关的Java Swing库: ```java import javax.swing.*; ``` `JCheckBox`的...
在Java Swing库中,`JCheckBox`是一种常用的用户界面组件,用于创建复选框,用户可以勾选或取消勾选来表示选择或否定一个选项。本篇文章将详细讲解如何在Java中处理`JCheckBox`的事件,以及相关知识点。 首先,`...
在Swing中,`JCheckbox` 和 `JComboBox` 是两种常见的组件,它们用于实现用户交互。 `JCheckbox` 是一个复选框组件,通常用于提供用户在一组可选选项中选择或取消选择一个或多个选项的功能。它继承自 `JComponent` ...
总的来说,这个示例展示了如何在`JList`中使用`JCheckBox`,提供了一种更直观的多选方式。通过自定义`ListModel`、渲染器和鼠标监听器,我们可以使`JList`具有勾选功能,从而增强用户界面的交互性。这在创建GUI应用...
JCheckBox是Swing库提供的一个复选框组件,可以用于在GUI应用程序中显示和选择多个选项。
Java Swing JCheckBox复选框是Java Swing中的一种常用控件,用于在图形用户界面中实现复选框的功能。在本文中,我们将详细介绍JCheckBox的实现方法,包括常用构造方法、常用方法和常用监听器,并通过示例代码展示...
Java Swing组件复选框JCheckBox是Swing中的一种基本组件,用于提供用户选择多个选项的功能。JCheckBox可以同时存在多个选项,并且每个选项都可以有两种状态:选中和未选中。在实际应用中,JCheckBox经常用于实现用户...
在Java Swing库中,`JTree`是一个组件,用于显示层次结构的数据,而`JCheckBox`则是一个可以勾选或取消勾选的图形用户界面元素。将`JCheckBox`与`JTree`结合使用,可以在树形结构的节点上提供复选框功能,允许用户...
在JFrame界面上随机生成多个JCheckBox,并获取选择的JCheckBox的文本内容,作为一个字符串。当取消某个JCheckBox的时候,又把字符串中含有此JCheckBox的文本去掉
本教程将深入讲解Java AWT(Abstract Window Toolkit)库中的Button和TextField组件,以及如何在实际应用中使用它们。适合对Java GUI编程感兴趣的初学者。 首先,我们来了解`Button`组件。在Java AWT中,`Button`是...
这个“java中各种控件使用范例”文件正是针对这些控件的应用实例,对于初学者来说,是学习和理解Java GUI编程的宝贵资源。 1. **JButton - 按钮** JButton是 Swing 中最基本的交互元素,通常用于触发一个事件或...
在Java Swing库中,`JComboBox`和`JCheckBox`是两种常见的组件,它们分别用于创建下拉选择框和复选框。`JComboBox`提供了一个可扩展的列表,用户可以从中选择一个或多个选项,而`JCheckBox`则允许用户在一组选项中...
8. `JCheckBoxExa.java`可能是关于`JCheckBox`组件的使用,`JCheckBox`是Swing中的复选框组件,用户可以点击选择或取消选择。 9. `ListExample.java`可能包含了一个使用`JList`组件的例子,`JList`允许用户从预定义...
从给定文件的信息中可以看出,它涉及到的是Java编程语言的某些类和接口,以及与Java相关的一些技术术语。Java是一种广泛使用的面向对象的编程语言,它被用于各种应用程序和服务器端开发。文件中列出了许多Java API中...
在`CheckHeaderCellRenderer.java`中,我们需要实现`TableCellRenderer`接口,确保表头的`JCheckBox`能正确地反映出所有行的选中状态,并响应用户的点击事件。当用户点击表头的`JCheckBox`时,它应会触发所有行的`...
当JCheckBox中的选项被选取或取消时,我们可以使用addItemListener()方法来监听事件,并对事件进行处理。 JCheckBox组件是JAVA组件大全中非常重要的一部分,它提供了灵活的选择控件,可以满足各种应用场景的需求。
要实现多选,我们需要在下拉列表中使用`JCheckBox`。我们可以创建一个自定义的`ComboBoxRenderer`,使得每个`JComboBox`的项都是一个带有`JCheckBox`的`JPanel`。这样,用户可以通过勾选`JCheckBox`来选择多个选项...
本案例主要探讨了如何在Java中使用图形控件,包括单选按钮(JRadioButton),复选框(JCheckBox),文本框(JTextField)以及如何添加监听器来响应用户的操作。下面将详细讲解这些知识点。 1. **Java Swing库**: ...
Java AWT中的Graphics类和Swing中的JComponent类结合使用,可以让开发者直接在组件上绘制图形,实现个性化的设计。 在“Java Swing教程”中,我们会详细讲解如何使用这些组件、布局管理器、事件处理和外观定制,...