当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

[JAVA100例]012、复合框[Java编程]

赞助商链接



  本文“[JAVA100例]012、复合框[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* <p>Title: 查抄盒演示</p>
* <p>Description: 挑选差别的挑选框显示差别的图片</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: CheckBoxDemo.java</p>
* @version 1.0
*/
public class CheckBoxDemo extends JPanel
              implements ItemListener {
   JCheckBox chinButton;
   JCheckBox glassesButton;
   JCheckBox hairButton;
   JCheckBox teethButton;
/*
   * 有四个查抄盒,辨别对应下巴、眼镜、头发和牙齿
   * 图片不是拼出来的,而是按照查抄盒挑选拼写图片文件名
   * 图片文件名的定义格局为"geek-XXXX.gif"
   * 此中 XXXX 按照查抄盒的差别挑选,而差别.它的格局以下:
----       //没有挑选
c---       //一个挑选
    -g--
    --h-
    ---t
cg--       //两个挑选
    c-h-
    c--t
    -gh-
    -g-t
    --ht
-ght       //三个挑选
    c-ht
    cg-t
    cgh-
cght       //全部都选
   */
StringBuffer choices;
   JLabel pictureLabel;
public CheckBoxDemo() {
     super(new BorderLayout());
//成立查抄盒
     chinButton = new JCheckBox("下巴(c)");
     chinButton.setMnemonic(KeyEvent.VK_C);
     chinButton.setSelected(true);
glassesButton = new JCheckBox("眼镜(g)");
     glassesButton.setMnemonic(KeyEvent.VK_G);
     glassesButton.setSelected(true);
hairButton = new JCheckBox("头发(h)");
     hairButton.setMnemonic(KeyEvent.VK_H);
     hairButton.setSelected(true);
teethButton = new JCheckBox("牙齿(t)");
     teethButton.setMnemonic(KeyEvent.VK_T);
     teethButton.setSelected(true);
//给查抄盒增添监听
     chinButton.addItemListener(this);
     glassesButton.addItemListener(this);
     hairButton.addItemListener(this);
     teethButton.addItemListener(this);
choices = new StringBuffer("cght");
//安排一个带图片的标签
     pictureLabel = new JLabel();
     pictureLabel.setFont(pictureLabel.getFont().deriveFont(Font.ITALIC));
     updatePicture();
//将查抄盒安排到面版中
     JPanel checkPanel = new JPanel(new GridLayout(0, 1));
     checkPanel.add(chinButton);
     checkPanel.add(glassesButton);
     checkPanel.add(hairButton);
     checkPanel.add(teethButton);
add(checkPanel, BorderLayout.LINE_START);
     add(pictureLabel, BorderLayout.CENTER);
     setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
   }
/**
*<br>办法阐明:监听查抄盒事件,凑合图片的文件名XXXX部份
*<br>输入参数:
*<br>返回范例:
*/
   public void itemStateChanged(ItemEvent e) {
     int index = 0;
     char c = ´-´;
     Object source = e.getItemSelectable();
if (source == chinButton) {
       index = 0;
       c = ´c´;
     } else if (source == glassesButton) {
       index = 1;
       c = ´g´;
     } else if (source == hairButton) {
       index = 2;
       c = ´h´;
     } else if (source == teethButton) {
       index = 3;
       c = ´t´;
     }

     //撤消挑选事件
     if (e.getStateChange() == ItemEvent.DESELECTED) {
       c = ´-´;
     }
//改变文件名字XXXX
     choices.setCharAt(index, c);
updatePicture();
   }
/**
*<br>办法阐明:绘制图片
*<br>输入参数:
*<br>返回范例:
*/
   protected void updatePicture() {
     //将得到的图片制成图标
     ImageIcon icon = createImageIcon(
                   "images/geek/geek-"
                   + choices.toString()
                   + ".gif");
     pictureLabel.setIcon(icon);
     pictureLabel.setToolTipText(choices.toString());
     if (icon == null) {
       pictureLabel.setText("没有发现图片");
     } else {
       pictureLabel.setText(null);
     }
   }
/**
*<br>办法阐明:获得图标
*<br>输入参数:String path 图片途径
*<br>返回范例:ImageIcon对象
*/
   protected static ImageIcon createImageIcon(String path) {
     java.net.URL imgURL = CheckBoxDemo.class.getResource(path);
     if (imgURL != null) {
       return new ImageIcon(imgURL);
     } else {
       System.err.println("Couldn´t find file: " + path);
       return null;
     }
   }
/**
*<br>办法阐明:主办法
*<br>输入参数:
*<br>返回范例:
*/
   public static void main(String s[]) {
     JFrame.setDefaultLookAndFeelDecorated(true);
//成立一个窗体,
     JFrame frame = new JFrame("CheckBoxDemo");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//成立一个面板
     JComponent newContentPane = new CheckBoxDemo();
     newContentPane.setOpaque(true);
     frame.setContentPane(newContentPane);
//显示窗体
     frame.pack();
     frame.setVisible(true);
   }
}


  以上是“[JAVA100例]012、复合框[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .