`

JCheckBox演示操作

阅读更多
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();
	}
	
	
	
}

 

分享到:
评论

相关推荐

    java JToolBar的基础演示

    在这个基础演示中,我们将深入理解`JToolBar`的使用方法,以及如何在Java Swing应用中集成它。 首先,`JToolBar`是`JComponent`的一个子类,这意味着它可以像其他Swing组件一样进行定制和布局管理。创建一个`...

    Java Swing 组件全演示源代码.rar_java swing_java 组件_java swing_java源代码_

    本资源“Java Swing 组件全演示源代码”包含了Java Swing中的各种组件的完整示例代码,可以帮助开发者深入理解和实际操作这些组件,提升GUI编程能力。 Swing 提供了大量的组件,包括基础组件如按钮(JButton)、...

    食品管理系统swing

    6. **视频演示**:资源中包含的演示视频,直观地展示了系统的实际操作流程,帮助用户快速理解和上手。通过观看视频,用户可以了解到系统的各项功能如何使用,提升系统的易用性。 综上所述,食品管理系统Swing项目...

    javaSW-JCheckboxTree.zip

    在"javaSW-JCheckboxTree.zip"这个压缩包中,可能包含了一个示例程序,它演示了如何创建并使用 `JCheckboxTree`。开发者可以从中学习到如何集成复选框功能,以及如何处理节点的选中状态。通过深入研究源代码,你可以...

    CheckBoxExample

    本示例项目"CheckBoxExample"可能是为了演示如何在Java应用中有效地使用`JCheckBox`类,这是Swing提供的`CheckBox`实现。 首先,让我们深入了解一下`JCheckBox`类。它是`AbstractButton`类的一个子类,因此继承了...

    Java程序设计(雍俊海)ch08

    雍俊海在书中强调了GUI对于简化软件学习过程的重要性,并给出了SwingSet2作为GUI组件的一个示例,这是一个包含多种Swing组件的演示程序。 Swing是Java的GUI库,它包含了轻量级(lightweight)组件,这些组件主要...

    Java设计用户注册界面PPT教案学习.pptx

    `JRadioButton`和`JComboBox`对象被创建并添加到界面中,同时它们的`addItemListener`方法被调用,以便在选择变化时执行相应的处理操作。`JTextArea`用于显示选择结果,而`ButtonGroup`用于管理单选按钮组,确保一次...

    JAVA swing类例子

    2. **JCheckBoxDemo.java**:`JCheckBox`是Swing中的复选框组件,用于提供两种状态的选择:选中或未选中。此示例可能包括如何创建、布局和监听复选框的状态变化,以便根据用户的选择执行相应的操作。 3. **...

    java swing漂亮界面 超酷 javaswing教程

    首先,Swing提供了丰富的组件库,包括JButton、JLabel、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等,这些组件可以组合使用以创建各种复杂界面。例如,JFrame是窗口的基础,JPanel则可以作为容器...

    SwingSet3源码

    SwingSet3是一款基于Java Swing库的示例应用,它为开发者提供了丰富的Swing组件和功能的演示。这个源码库对于深入理解Swing、学习如何构建复杂的GUI应用程序以及掌握Swing组件的用法非常有帮助。让我们一起探索...

    swing课ppt+组件,源码

    这个压缩包文件包含了关于Swing课程的PPT演示文稿和相关的源代码,这对于学习和理解Swing组件及其用法非常有帮助。 Swing提供了丰富的组件集,这些组件可以用来创建各种复杂的窗口应用。以下是一些主要的Swing组件...

    精通Java Swing程序设计

    "精通Java Swing程序设计"这本书很可能涵盖了这些基本概念,并通过实例演示如何使用Swing构建实际的应用程序。CHM文件格式是一种常见的帮助文档格式,包含HTML页面和索引,方便读者查找和学习相关知识。通过阅读这...

    swing导航和示例

    标题"Swing导航和示例"表明我们将探讨Swing的基本概念、导航方式以及通过实例来演示其用法。Swing中的导航主要指的是在组件之间,如按钮、文本框和菜单之间的交互方式,这些通常涉及键盘快捷键和鼠标操作。 Swing...

    Treeselectbox.rar

    在Java Swing库中,JTable组件是用于展示二维数据集的一种常见方式,用户可以查看、编辑和操作这些数据。在处理复杂的数据筛选需求时,我们可能会遇到如何在JTable中实现树形选择框(TreeSelectBox)的问题。...

    SwingSet2 源码

    4. **ButtonDemo.java**:展示了不同类型的按钮(如`JButton`、`JRadioButton`和`JCheckBox`)的使用,以及如何响应按钮点击事件。这包括了按钮的布局管理、图标设置和事件处理机制。 5. **FileChooserDemo.java**...

    深入学习jfc swing组件

    1. **基础组件**: Swing提供了一系列基本组件,如JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(文本区域)、JCheckBox(复选框)、JRadioButton(单选按钮)和JComboBox(组合框)。...

    qq登录界面制作.pdf

    1. Java Swing GUI编程基础:文件中提到了Java Swing组件,包括JFrame、JPanel、JLabel、JTextField、JPasswordField、JButton、JCheckBox、JTabbedPane等。Swing是Java的一个图形用户界面工具包,用于创建窗口化...

    java-GUI.zip_GUI教程_Java GUI

    而Swing是建立在AWT之上的高级GUI框架,提供了更丰富的组件和更好的外观,支持Windows、Mac OS X和Linux等不同操作系统的“本机”外观。 在Java GUI编程中,首先需要理解组件(Components)的概念,它们是构成用户...

    java swing所有组件展示 (附源码)

    7. **JCheckBox** 和 **JRadioButton**:复选框和单选按钮,用于实现多选或二选一的选择。 8. **JScrollPane**:当组件(如JList或JTextArea)内容过多时,JScrollPane能提供滚动功能。 9. **JTable**:用于显示和...

    java事件 选项事件 实例代码

    "选项事件"(ItemEvent)是Java AWT(Abstract Window Toolkit)和Swing库中的一种特定事件类型,用于处理组件如单选按钮(JRadioButton)、复选框(JCheckBox)或组合框(JComboBox)中的选择变化。当我们对这些...

Global site tag (gtag.js) - Google Analytics