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());}}/** * 事件处理 */@Overridepublic void itemStateChanged(ItemEvent e) {// TODO Auto-generated method stubint 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();}}
?