import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* Title:演示JCheckBox使用
* Description:通过勾选不同的复选框来显示不同的图片
* @author fan
*
*/
public class MyCheckDemo extends JFrame implements ItemListener{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 定义四个复选框
*/
JCheckBox chinCheck, glassesCheck, hairCheck, teetchCheck;
/**
* 定义一个JLabel用来进行图片的显示
*/
JLabel pictureLabel;
/**
* 定义一个StringBuffer来标记需要进行显示的图片,利用setChar(int, char)来进行
*/
StringBuffer choices = new StringBuffer("cght");
/**
* 构造方法
*/
public MyCheckDemo(){
lunchFrame();
}
/**
* 进行界面的构造
*/
public void lunchFrame(){
this.setLayout(new BorderLayout());
JPanel check_Panel = new JPanel();
chinCheck = new JCheckBox("下巴(c)");
glassesCheck = new JCheckBox("眼镜(g)");
hairCheck = new JCheckBox("头发(h)");
teetchCheck = new JCheckBox("牙齿(t)");
chinCheck.setSelected(true);
glassesCheck.setSelected(true);
hairCheck.setSelected(true);
teetchCheck.setSelected(true);
chinCheck.addItemListener(this);
glassesCheck.addItemListener(this);
hairCheck.addItemListener(this);
teetchCheck.addItemListener(this);
check_Panel.setLayout(new GridLayout(0, 1));
check_Panel.add(chinCheck);
check_Panel.add(glassesCheck);
check_Panel.add(hairCheck);
check_Panel.add(teetchCheck);
JPanel pic_Panel = new JPanel();
pictureLabel = new JLabel();
pictureLabel.setFont(pictureLabel.getFont().deriveFont(Font.ITALIC));
this.updatePicture();
pic_Panel.add(pictureLabel);
this.getContentPane().add(check_Panel, BorderLayout.LINE_START);
this.getContentPane().add(pic_Panel, BorderLayout.CENTER);
this.setTitle("CheckDemo");
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
this.setCenterLocation();
}
/**
* 方法说明:将窗体定义到屏幕中间
*/
private void setCenterLocation(){
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int w = this.getSize().width;
int h = this.getSize().height;
System.out.println("宽度: "+w+" ,高度:"+h);
int x = (dim.width - w)/2;
int y = (dim.height - h)/2;
this.setLocation(x, y);
}
/**
* 方法说明:生产图标
* @param path 图片的存放路径
* @return ImageIcon
*/
protected static ImageIcon createImageIcon(String path){
ImageIcon image = null;
try{
java.net.URL imgURL = MyButtonDemo.class.getClassLoader().getResource(path);
if(imgURL != null){
image = new ImageIcon(imgURL);
}else{
System.err.println("could not find file: "+path);
}
}catch(Exception e){
e.printStackTrace();
}
if(image != null){
return image;
}else{
return null;
}
}
/**
* 进行图片的更新
*/
public void updatePicture(){
//
ImageIcon icon = createImageIcon("base2011/images/geek/geek-"
+choices.toString()+".gif");
if(icon == null){
pictureLabel.setText("没有发现图片");
}else{
pictureLabel.setIcon(icon);
pictureLabel.setToolTipText(choices.toString());
}
}
/**
* 事件处理
*/
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
int index = 0;
char c = '-';
//选择事件发生
Object source = e.getSource();
if(source == chinCheck){
index = 0;
c = 'c';
}else if(source == glassesCheck){
index = 1;
c = 'g';
}else if(source == hairCheck){
index = 2;
c = 'h';
}else if(source == teetchCheck){
index = 3;
c = 't';
}
//取消选择事件
if(e.getStateChange() == ItemEvent.DESELECTED){
c = '-';
}
//该标识的名字
choices.setCharAt(index, c);
//更新图片
updatePicture();
}
/**
* 主方法
*/
public static void main(String[] args){
new MyCheckDemo();
}
}
分享到:
相关推荐
在这个基础演示中,我们将深入理解`JToolBar`的使用方法,以及如何在Java Swing应用中集成它。 首先,`JToolBar`是`JComponent`的一个子类,这意味着它可以像其他Swing组件一样进行定制和布局管理。创建一个`...
本资源“Java Swing 组件全演示源代码”包含了Java Swing中的各种组件的完整示例代码,可以帮助开发者深入理解和实际操作这些组件,提升GUI编程能力。 Swing 提供了大量的组件,包括基础组件如按钮(JButton)、...
6. **视频演示**:资源中包含的演示视频,直观地展示了系统的实际操作流程,帮助用户快速理解和上手。通过观看视频,用户可以了解到系统的各项功能如何使用,提升系统的易用性。 综上所述,食品管理系统Swing项目...
在"javaSW-JCheckboxTree.zip"这个压缩包中,可能包含了一个示例程序,它演示了如何创建并使用 `JCheckboxTree`。开发者可以从中学习到如何集成复选框功能,以及如何处理节点的选中状态。通过深入研究源代码,你可以...
本示例项目"CheckBoxExample"可能是为了演示如何在Java应用中有效地使用`JCheckBox`类,这是Swing提供的`CheckBox`实现。 首先,让我们深入了解一下`JCheckBox`类。它是`AbstractButton`类的一个子类,因此继承了...
雍俊海在书中强调了GUI对于简化软件学习过程的重要性,并给出了SwingSet2作为GUI组件的一个示例,这是一个包含多种Swing组件的演示程序。 Swing是Java的GUI库,它包含了轻量级(lightweight)组件,这些组件主要...
`JRadioButton`和`JComboBox`对象被创建并添加到界面中,同时它们的`addItemListener`方法被调用,以便在选择变化时执行相应的处理操作。`JTextArea`用于显示选择结果,而`ButtonGroup`用于管理单选按钮组,确保一次...
2. **JCheckBoxDemo.java**:`JCheckBox`是Swing中的复选框组件,用于提供两种状态的选择:选中或未选中。此示例可能包括如何创建、布局和监听复选框的状态变化,以便根据用户的选择执行相应的操作。 3. **...
首先,Swing提供了丰富的组件库,包括JButton、JLabel、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等,这些组件可以组合使用以创建各种复杂界面。例如,JFrame是窗口的基础,JPanel则可以作为容器...
SwingSet3是一款基于Java Swing库的示例应用,它为开发者提供了丰富的Swing组件和功能的演示。这个源码库对于深入理解Swing、学习如何构建复杂的GUI应用程序以及掌握Swing组件的用法非常有帮助。让我们一起探索...
这个压缩包文件包含了关于Swing课程的PPT演示文稿和相关的源代码,这对于学习和理解Swing组件及其用法非常有帮助。 Swing提供了丰富的组件集,这些组件可以用来创建各种复杂的窗口应用。以下是一些主要的Swing组件...
"精通Java Swing程序设计"这本书很可能涵盖了这些基本概念,并通过实例演示如何使用Swing构建实际的应用程序。CHM文件格式是一种常见的帮助文档格式,包含HTML页面和索引,方便读者查找和学习相关知识。通过阅读这...
标题"Swing导航和示例"表明我们将探讨Swing的基本概念、导航方式以及通过实例来演示其用法。Swing中的导航主要指的是在组件之间,如按钮、文本框和菜单之间的交互方式,这些通常涉及键盘快捷键和鼠标操作。 Swing...
在Java Swing库中,JTable组件是用于展示二维数据集的一种常见方式,用户可以查看、编辑和操作这些数据。在处理复杂的数据筛选需求时,我们可能会遇到如何在JTable中实现树形选择框(TreeSelectBox)的问题。...
4. **ButtonDemo.java**:展示了不同类型的按钮(如`JButton`、`JRadioButton`和`JCheckBox`)的使用,以及如何响应按钮点击事件。这包括了按钮的布局管理、图标设置和事件处理机制。 5. **FileChooserDemo.java**...
1. **基础组件**: Swing提供了一系列基本组件,如JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(文本区域)、JCheckBox(复选框)、JRadioButton(单选按钮)和JComboBox(组合框)。...
1. Java Swing GUI编程基础:文件中提到了Java Swing组件,包括JFrame、JPanel、JLabel、JTextField、JPasswordField、JButton、JCheckBox、JTabbedPane等。Swing是Java的一个图形用户界面工具包,用于创建窗口化...
而Swing是建立在AWT之上的高级GUI框架,提供了更丰富的组件和更好的外观,支持Windows、Mac OS X和Linux等不同操作系统的“本机”外观。 在Java GUI编程中,首先需要理解组件(Components)的概念,它们是构成用户...
7. **JCheckBox** 和 **JRadioButton**:复选框和单选按钮,用于实现多选或二选一的选择。 8. **JScrollPane**:当组件(如JList或JTextArea)内容过多时,JScrollPane能提供滚动功能。 9. **JTable**:用于显示和...
"选项事件"(ItemEvent)是Java AWT(Abstract Window Toolkit)和Swing库中的一种特定事件类型,用于处理组件如单选按钮(JRadioButton)、复选框(JCheckBox)或组合框(JComboBox)中的选择变化。当我们对这些...