2005年07月19日

winver———查看windows版本
wmimgmt.msc—-打开windows管理体系结构(WMI)
wupdmgr——–windows更新程序
wscript——–windows脚本宿主设置
write———-写字板
winmsd———系统信息
wiaacmgr——-扫描仪和照相机向导
winchat——–XP自带局域网聊天
mem.exe——–显示内存使用情况
msconfig.exe—系统配置实用程序
mplayer2——-简易widnows media player
mspaint——–画图板
mstsc———-远程桌面连接
magnify——–放大镜实用程序
mmc————打开控制台
mobsync——–同步命令
dxdiag———检查DirectX信息
drwtsn32—— 系统医生
devmgmt.msc— 设备管理器
dfrg.msc——-磁盘碎片整理程序
diskmgmt.msc—磁盘管理实用程序
dcomcnfg——-打开系统组件服务
ddeshare——-打开DDE共享设置
dvdplay——–DVD播放器
net stop messenger—–停止信使服务
net start messenger—-开始信使服务
notepad——–打开记事本
nslookup——-网络管理的工具向导
ntbackup——-系统备份和还原
narrator——-屏幕“讲述人”
ntmsmgr.msc—-移动存储管理器
ntmsoprq.msc—移动存储管理员操作请求
netstat -an—-(TC)命令检查接口
syncapp——–创建一个公文包
sysedit——–系统配置编辑器
sigverif——-文件签名验证程序
sndrec32——-录音机
shrpubw——–创建共享文件夹
secpol.msc—–本地安全策略
syskey———系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
services.msc—本地服务设置
sndvol32——-音量控制程序
sfc.exe——–系统文件检查器
sfc /scannow—windows文件保护
tsshutdn——-60秒倒计时关机命令
tourstart——XP简介(安装完成后出现的漫游xp程序)
taskmgr——–任务管理器
eventvwr——-事件查看器
eudcedit——-造字程序
explorer——-打开资源管理器
packager——-对象包装程序
perfmon.msc—-计算机性能监测程序
progman——–程序管理器
regedit.exe—-注册表
rsop.msc——-组策略结果集
regedt32——-注册表编辑器
rononce -p —-15秒关机
regsvr32 /u *.dll—-停止dll文件运行
regsvr32 /u zipfldr.dll——取消ZIP支持
cmd.exe——–CMD命令提示符
chkdsk.exe—–Check disk磁盘检查
certmgr.msc—-证书管理实用程序
calc———–启动计算器
charmap——–启动字符映射表
cliconfg——-SQL SERVER 客户端网络实用程序
Clipbrd——–剪贴板查看器
conf———–启动netmeeting
compmgmt.msc—计算机管理
cleanmgr——-垃圾整理
ciadv.msc——索引服务程序
osk————打开屏幕键盘
odbcad32——-ODBC数据源管理器
oobe/msoobe /a—-检查XP是否激活
lusrmgr.msc—-本机用户和组
logoff———注销命令
iexpress——-木马捆绑工具,系统自带
nslookup——-IP地址侦测器
fsmgmt.msc—–共享文件夹管理器
utilman——–辅助工具管理器
gpedit.msc—–组策略

2005年07月14日

先将温度计放在嘴里含7分钟,再取出,温度读数为98.6°F。要是感到身体不舒服,温度读数为103°F或104°F。许多人都知道如果温度读数为110°F,人会死去。读数为90°F时,人已死一段时间了。我们都知道体温的意义,也知道温度在天气预报中的意义。例如在20°F时,作户外运动就要穿上冬装;90°F,就得去海滨。我们很熟悉温度和日常生活关系密切。但是温度究竟是什么?20°F、90°F乃至9000°F时的空气有何不同?

温度是热和冷的测量单位,由分子的运动或动能确定。所有的分子都在运动:正如在气体中分子向所有方向散开;在液体中,粘在一起滑动;在固体中,固定在其位置上振动,这种运动产生热和温度。一组分子动能越大,温度就越高。即使是在物质少量取样中,分子的运动速度也不同,因此以一组分子的平均动能来定义温度。身体健康不发烧时,体温为98.6°F左右。98.6°F是什么意思?98.6盎司约为6磅。98.6英寸约为8英尺。那么98.6°F是多少?

英寸和英尺是距离的度量单位,盎司和磅是重量的度量单位,同样华氏度是温度的度量单位,称作华氏温标。荷兰裔德国物理学家丹尼尔·加布里埃尔·华伦海特于1714年率先推出精度的确很高的温度计。以往的温度计基于空气等气体或酒精或水等液体的膨胀和收缩,而华氏温度计使用了液体水银。事实证明,水银在许多方面优于其他物质。其一,在所有液体中,水银的膨胀率最均匀,而水随温度变化时其的膨胀尤为不均匀。其二,水银不如水那样容易结冰,不如酒精那样容易沸腾,在很宽的温度范围内都保持液态。其三,水和酒精会附在玻璃表面。水温度计或酒精温度计的温度下降时,一些液体附在玻璃上,下降缓慢,因此很难得出温度的精确读数。

华伦海特还发明了一种校准他所推出的温度计的温标。艾萨克·牛顿建议以水的凝固点、人的体温作为温度计的标定点,并将水的凝固点定为0度,华伦海特推出的温标基本上以它为基础。同时他还意识到这样一来,冬天的温度将低于零度。为了尽量避免负温度,将盐加到水中以降低水的凝固点。他将盐水凝固温度定为0华氏度(即0°F)。然后将0度到体温之间的间隔分成96等份(为什么这样划分无可奉告),将体温定为96°F。根据这一温标,纯水的凝固点接近32°F,沸点接近212°F。

科学家进一步了解水的物理和化学特性后发现,纯水的凝固点和沸点很有参考价值。因此,华伦海特调整了温标,将凝固点正好定为32°F,沸点为212°F,其间的间隔分成180等份。体温就调整为98.6°F。

在美国,除科学界以外的其他领域主要采用华氏温标。其他许多国家(即便是华氏温标的发源地英国)及那些国家的科学家都使用瑞典天文学家安德·摄尔西乌斯于1742年发明的另一种温标。这种温标极其简单,它将纯水的凝固点定为0度,沸点定为100度,将其间的间隔分成100等份(奇怪的是,摄尔西乌斯先将凝固点定为100度,沸点为0度,但第二年就将两者倒了过来)。起先这种温标称为百分标,即分成“100等份”,在1948年之后大家达成一致,将其更名为摄氏温标(这两种温标的符号都是C,因而在教科书中不必修改)。

数千年来人们都知道,物体受热膨胀,冷却时收缩(但水在一定温度时有例外,参见《奇妙的水分子》。温度变化时,固体和液体几乎不膨胀也不收缩,少量有变化的也因物质而异。例如,金属铝的膨胀比矿石石英快77倍。气体则并非如此。温度变化时,所有气体都随之发生明显的膨胀和收缩,且变化率相同,是一般固体的300倍。

气体收缩率不变,也出现了一个有意思的问题。气体冷却时以恒定比率收缩会不会越缩越小,最终缩到物质消失?那时会出现什么现象?物质怎么能没有体积不占空间,而基本上消失呢?

法国化学家约瑟夫·路易斯·盖伊·勒萨克在18世纪末期提出了这个问题。①他取出一定体积的气体以0℃为起始温度将其慢慢冷却并计录其体积的变化。气体温度每下降1度,体积减少1/273。例如,他用273加仑的氧气从0℃开始实验,温度降为-1℃时,体积减为272加仑;在-10℃时,体积变为263加仑;在-50℃时,变成223加仑,依此类推。那么如果气体温度为-273℃,又怎样呢?体积会减为零吗?

不会。气体在冷却到一定程度时变成液体,收缩率大大下降。温度更低时,液体固化,收缩率进一步减少。因而体积永远不可能降为零。盖伊·勒萨克和其他人的研究导致了另一个有趣的问题:物体的冷却到底有无限度?

-273℃是一个令人感兴趣的值。物理学家开始将温度变化与分子动能而不是与体积变化相联系,他们推断,温度从0℃开始每降低1度,实验中的氧气体积不仅减少1/273,分子也失去了1/273的动能。在-273℃时,分子不再运动,甚至在组成分子的原子中移动的电子也不运动,总动能为零。物理学家不会接受这种观点。如果电子不在原子内到处运动,由于两者间的相互吸引,就会被拉向原子核,原子就会崩溃。那么所有物质在-273℃时都会崩溃。

但是,物质不会崩溃;因此,温度不可能达到-273℃。事实上存在的温度的下限,即使利用现代的先进技术,也绝不可能达到- 273℃(确切值为-273.16℃),将来也绝不可能达到。这是物理界“无法做到”的事之一。如果有朝一日做到这一点,将会出现十分奇特的现象。光速是另一个做不到的事(参见《一切事物都是相对的:狭义相对论》)。

不管能否做到,-273℃很快得到了很好的应用。1848年,苏格兰物理学家威廉·汤姆森(后来提升为男爵,头衔开尔文勋爵)提出温标中的零点不应该是水的凝固点(摄氏温标)或32度(华氏温标),而应采用能存在的最低温度(水像酒精、苹果汁和巧克力奶油冻一样,仅仅是无数物质之一),这样才有意义。他将这个最低温度称为绝对零度,由此产生的温标称为绝对温标。通常也被称为开氏温标。

为了符合自己的使用目的,开尔文决定修改摄氏温标而不修改华氏温标。1开(1K)和1℃的值实际上相等①(今天温度比昨天高10℃,同样也高出10K)。唯一的区别是它们的起点,若开氏温标从0开始,那么摄氏温标从-273开始(华氏温标从-460开始)。

天文学和物理学等领域乐于采用开氏温标。表1对开氏温标和摄氏温标的公共值作了比较。

尽管我们无法达到绝对零度,但能够十分接近这个温度,仅仅高出十亿分之几度,这种温度下没有气体,也几乎没有液体。您呼吸的空气是块状的固态冰。在分子一级,一切物质都以极低的速度运动。

物体受热时,分子开始振动和摆动。许多分子挣脱束缚。熔解和沸腾下面还要谈到。压力对不同温度下物质的物理状态有一定的作用。物质的熔点和沸点通常指在常压下,或是海平面的标准大气压下。

在高于绝对零度2华氏度或1摄氏度下(现在,我们开始使用这两种常用温标),氦首先熔解;略高于这一温度(-452°F或-269℃)就开始沸腾。接着是氢。氧排在第四位,在-361°F(-218℃)时熔解,-297°F(-183℃)时沸腾,温度再升高168°F,就达到地球上的最低气温记录:-129°F(-89℃)。这一气温于1983年在南极洲出现。最先熔化的金属为汞,在-38°F(-39℃)时熔解。冰在32°F(0℃)时溶解。

我们现在来看温标的正值,温度稳步上升。1992年,利比亚出现了地球上树荫下的最高温度136°F(58℃)。但比212°F(100℃)的沸水温度低得多。更比厨房火炉通常的550°F(288℃)低。550°F略高于纸张的燃点。雷·布拉德伯里撰写的《华氏451度》一书的书名源于纸张的燃点。书中讲到在未来沉闷的社会,政府为压制思想和言语自由而焚书。

炉内空气达不到将空气加热的火焰热度。标准火炉或炉顶燃烧器所用天然气(甲烷)火焰的温度超过2000°F (1039℃)。这大体上是金和铜的熔点,汽车尾气的温度(汽车发动机的温度可达到4500°F)。在这个温度下,受热物体将发出红光。

其他许多金属,如铁在2795°F(1535℃)时熔解。熔点最高的金属是灯泡中发光的灯丝,金属钨。它在6116°F(3380℃)时变为液体。唯有钻石在更高温度下才熔解,其熔点为6400°F(3538℃)。费解的是,钨的沸点为10,700°F(5927℃),是所有物质中最高的,高于钻石的沸点。

在7300°F(约4000℃)的常压下根本没有固体存在。

温度还能更高。什么情况下出现这些超高温,在什么过程中出现?

在地下4000英里的地球中心处的温度约为12,000°F(6649℃),略高于太阳表面温度。地球中心处的材料主要是极高压下的固态金属铁和镍。高压产生高温,体积和质量更大的恒星将产生更大的内部压力,核心的温度更高,太阳系中体积最大、质量最大的木星(其质量大于其他8个行星质量之和)的核心温度估计高达3.6万°F(约2万℃)。温度之高,所有分子键都无法存在。存在的物质都由单原子和部分原子组成。

既然这时的温度已超过行星的温度,我们来看一下恒星。恒星的表面温度悬殊很大。体积较小的恒星其实温度不算高,约5400°F(约3000℃)。它们看上去呈红色。太阳的质量约为小恒星的10倍,是木星的1000倍,因此其内部的压力和热量都很大。它的表面温度约为10,000°F(约5500℃),发出黄光。太阳远不能和质量最大、最热的恒星相比。质量最大和温度最高的恒星的表面温度达到20万°F(约11.1万℃),发出蓝白光。激光束的温度则是这个温度的10倍。

激光和恒星表面的温度远远比不上恒星中心的温度。即使是最小的恒星的核心温度也超过1800万°F(约1000万℃)。这是氢聚变的温度,氢聚变是恒星有能量并发光的原因。太阳中心的温度约为2700万°F(1500万℃),质量更大的恒星中心的温度更高。科学家在地球上用氢弹爆炸再现氢聚变反应。托卡马克实验核反应堆在受控实验室条件下可再现氢聚变(不要将托卡马克热核反应装置与世界各国产生社会所需能量的核反应堆混为一谈,后者是裂变反应堆,根本不是实验反应堆,它采用完全不同的核反应过程,释放的能量不如实验核反应堆多)。托卡马克装置的内部温度能达到7.2亿°F(约4亿℃)。

还有温度更高的物质吗?有。恒星将氢用尽,开始死亡时,会出现失常行为。它们开始融合其他元素,核心处温度高达25亿°F(约14亿℃)。最重的恒星在意想不到的爆炸中结束生命,这个过程叫超新星。发生超新星现象时,其核心温度超过410亿°F(约230亿℃)。据报道,粒子加速器中的温度超过18000亿°F(约10000亿℃)。

现在我们知道温度能达到数万亿度。温度有上限吗?物理学家认为既然有温度下限,肯定也存在上限。美国国家标准与技术研究所的约翰·黑斯蒂和大卫·邦内尔以及美国首都华盛顿的国际风险科学中心的琼·贝科威茨合著的《高温》一文中指出,自然界能达到的最大温度受可用能量开始生成物质的限制,估计能达到2×1012K,即3.6万亿°F(约2万亿℃),比我们现在所知道的温度最高的物体还高一倍。

创世大爆炸也是例外。我们相信宇宙从创世大爆炸开始,当时的温度是无法想象的。按宇宙论者和天文物理学家计算,“大爆炸”的温度达到2×1032°F(将2改为1,即为大致的摄氏度),任何温度都不会高于这个温度了。

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;

/**
 * @author <a href="mailto:mindeng@13x.cn">Mindeng Chen</a>
 */
public class DbConnectionPool {

 private final String jdbcDriver;
 private final String jdbcURL;
 private final String jdbcUser;
 private final String jdbcPassword;

 private Connection conn;

    // Constructors
    public DbConnectionPool(String driver, String url) {
        this(driver, url, null, null);
    }

    public DbConnectionPool(String driver, String url, String user, String pwd) {
        this.jdbcDriver = driver;
        this.jdbcURL = url;
        this.jdbcUser = user;
        this.jdbcPassword = pwd;
    }


 // Connect with database
 public Connection getConnection() {
     // Load database driver
  try {
      // You need put mm.mysql-2.0.4-bin.jar in {TOMCAT HOME}\common\lib
            Class.forName(jdbcDriver);
  }
  catch (ClassNotFoundException e) {
   e.printStackTrace();
   System.out.println("[Exception occurred when loading driver]:" + e.getMessage());
  }
        // Connect with database
  try {
   conn = DriverManager.getConnection(jdbcURL, jdbcUser, jdbcPassword);
  }
  catch (Exception e) {
   e.printStackTrace();
   System.out.println("[Exception occurred when connectting with database]:" + e.getMessage());
  }

        return conn;
 }

 // Close the connection
 public void shutdown() {
     try {
      if (conn != null && !conn.isClosed())
          conn.close();
     }
  catch (SQLException e) {
      e.printStackTrace();
  }
  conn = null;
 }


}

import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;

public class SystemTime {
    public static void main(String args[]){
        SystemTime st = new SystemTime();
        st.getTimeOne();
        st.getTimeTwo();
    }

    /**方法一*/
    public void getTimeOne(){
        Calendar cal = Calendar.getInstance();

        //当前年
        int year = cal.get(Calendar.YEAR);
        //当前月
        int month = (cal.get(Calendar.MONTH))+1;
        //当前月的第几天:即当前日
        int day_of_month = cal.get(Calendar.DAY_OF_MONTH);
        //当前时:HOUR_OF_DAY-24小时制;HOUR-12小时制
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        //当前分
        int minute = cal.get(Calendar.MINUTE);
        //当前秒
        int second = cal.get(Calendar.SECOND);
        //0-上午;1-下午
        int ampm = cal.get(Calendar.AM_PM);
        //当前年的第几周
        int week_of_year = cal.get(Calendar.WEEK_OF_YEAR);
        //当前月的第几周
        int week_of_month = cal.get(Calendar.WEEK_OF_MONTH);
        //当前年的第几天
        int day_of_year = cal.get(Calendar.DAY_OF_YEAR);

        System.out.print("现在是" + year + "年" + month + "月" + day_of_month + "日" + hour + "时" + minute + "分" + second + "秒");
        System.out.println("(" + (ampm == 0 ? "上午" : "下午") + ")");
        System.out.println("今天是" + year + "的第" + day_of_year + "天");
        System.out.println("本周是" + year + "年的第" + week_of_year + "周," + month + "月的第" + week_of_month + "周");
    }

    /**方法二*/
    public void getTimeTwo(){
        Date date = new Date();
        //时间格式化:MM-月份;mm-分钟;HH-24小时制;hh-12小时制
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        System.out.println(df.format(date));
    }
}

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.table.*;

/**
 * Swing component test
 */
public class SwingTest extends JFrame {

    public SwingTest() {

  MenuTest menuTest = new MenuTest();
  LeftPanel leftPanel = new LeftPanel();
  RightPanel rightPanel = new RightPanel();
  BottomPanel bottomPanel = new BottomPanel();
  CenterPanel centerPanel = new CenterPanel();

  // 设置主框架的菜单
  setJMenuBar(menuTest);

  Container c = getContentPane();

     c.setLayout(new BorderLayout());
  c.add(leftPanel, BorderLayout.WEST);
  c.add(rightPanel, BorderLayout.EAST);
  c.add(bottomPanel, BorderLayout.SOUTH);
  c.add(centerPanel, BorderLayout.CENTER);

  // 利用无名内隐类,增加窗口事件
  addWindowListener(new WindowAdapter() {
            public void WindowClosing(WindowEvent e) {
                // 释放资源,退出程序
                dispose();
                System.exit(0);
            }
        });

  setSize(700,500);
  setLocation(200,150);
  setTitle("Swing 组件大全");
  // 隐藏主框架的标题栏
//  setUndecorated(true);

        show();
 }

    public static void main(String args[]) {
  try {
      // Windows GUI
//          UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  }
        catch  (Exception e) {
            e.printStackTrace();
        }
  new SwingTest();
 }

 ////////////////////////////////////////////////////////////////////////////
 /**
  * 菜单栏处理模块
  * JMenuBar –+
  *            –JMenu–+
  *                    –JMenuItem  –ActionListener
  */
 class MenuTest extends JMenuBar {

  private JDialog aboutDialog;
  // 菜单初始化操作
  public MenuTest() {
   JMenu fileMenu = new JMenu("文件");
   JMenuItem aboutMenuItem = new JMenuItem("关于", KeyEvent.VK_A);
   JMenuItem exitMenuItem = new JMenuItem("退出", KeyEvent.VK_E);

   fileMenu.add(aboutMenuItem);
   fileMenu.add(exitMenuItem);
   this.add(fileMenu);

   aboutDialog = new JDialog();
   initAboutDialog();

   // “退出”菜单事件
   exitMenuItem.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     dispose();
     System.exit(0);
    }
   });

            // “关于”菜单事件
   aboutMenuItem.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     aboutDialog.show();
    }
   });
  }

  public JDialog getAboutDialog() {
   return aboutDialog;
  }

  public void initAboutDialog() {
   aboutDialog.setTitle("关于");

   Container con =aboutDialog.getContentPane();

   // Swing 中使用html语句
   Icon icon = new ImageIcon("smile.gif");
   JLabel aboutLabel = new JLabel("<html><b><font color=#990000><center>Swing</center></font></b></html>", icon, JLabel.CENTER);

   con.add(aboutLabel,BorderLayout.CENTER);

   aboutDialog.setSize(450,225);
   aboutDialog.setLocation(300,300);
   aboutDialog.addWindowListener(new WindowAdapter() {
    public void WindowClosing(WindowEvent e) {
     dispose();
    }
   });
  }
 }

 ////////////////////////////////////////////////////////////////////////////
 /**
  * 最左边模块,继承JPanel,初始化内容为JTree
  * JPanel–+
  *         –JTree
  */
 class LeftPanel extends JPanel {
  private int i = 0;
  public LeftPanel() {

   DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
   DefaultMutableTreeNode child = new DefaultMutableTreeNode("Child");
   DefaultMutableTreeNode select = new DefaultMutableTreeNode("select");

   DefaultMutableTreeNode child1 = new DefaultMutableTreeNode(""+i);

   root.add(child);
   root.add(select);
   child.add(child1);

   JTree tree = new JTree(root);
   tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);

   // 每个节点的行高
   tree.setRowHeight(18);
   tree.addTreeSelectionListener(new TreeSelectionListener () {
    public void valueChanged(TreeSelectionEvent e) {
     // 内隐类不能直接引用外部类tree,1.外部变量可申明为final 2.新建外部类的对象
     JTree tree =(JTree)e.getSource();
     DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
     i++;
     selectNode.add(new DefaultMutableTreeNode(""+i));
    }
   });

   tree.setPreferredSize(new Dimension(100,300));
//   tree.setEnabled(true);
   JScrollPane scrollPane = new JScrollPane(tree);
//   scrollPane.setSize(100,350);
   this.add(scrollPane);
  }
 }

 ////////////////////////////////////////////////////////////////////////////
 /**
  * 最下面层模块,继承JPanel,初始化内容为进度条,并由定时器控制
  * JPanel–+
  *         –JProcessBar  –Timer
  */
 class BottomPanel extends JPanel {
  private JProgressBar pb;
  public BottomPanel() {
   pb = new JProgressBar();
   pb.setPreferredSize(new Dimension(680,20));

   // 设置定时器,用来控制进度条的处理
   Timer time = new Timer(1, new ActionListener() {
       int counter = 0;
    public void actionPerformed(ActionEvent e) {
     counter++;
     pb.setValue(counter);
     Timer t = (Timer)e.getSource();

     // 如果进度条达到最大值重新开发计数
     if (counter == pb.getMaximum()) {
      t.stop();
      counter =0;
      t.start();
     }
    }
   });
   time.start();

   pb.setStringPainted(true);
   pb.setMinimum(0);
   pb.setMaximum(1000);
   pb.setBackground(Color.white);
   pb.setForeground(Color.red);

   this.add(pb);
  }

  // 设置进度条的数据模型
  public void setProcessBar(BoundedRangeModel rangeModel) {
   pb.setModel(rangeModel);
        }
 }

 ////////////////////////////////////////////////////////////////////////////
 /**
  * 最右边模块,继承JPanel,初始化各种按钮
  * JPanel–+
  *         –JButton  –JToggleButton — JList — JCombox –JCheckBox ….
  */
 class RightPanel extends JPanel {
  public RightPanel() {
   this.setLayout(new GridLayout(8,1));

   // 初始化各种按钮
   JCheckBox checkBox = new JCheckBox("复选按钮");
   JButton button = new JButton("打开文件");
   button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     JFileChooser file = new JFileChooser();
     int result = file.showOpenDialog(new JPanel());
     if (result ==file.APPROVE_OPTION) {
      String fileName = file.getSelectedFile().getName();
      String dir = file.getCurrentDirectory().toString();
        JOptionPane.showConfirmDialog(null,dir+"\\"+fileName,"选择的文件",JOptionPane.YES_OPTION);
      }
    }
   });

   JToggleButton toggleButton = new JToggleButton("双态按钮");

   ButtonGroup buttonGroup = new ButtonGroup();
   JRadioButton radioButton1 = new JRadioButton("单选按钮1",false);
   JRadioButton radioButton2 = new JRadioButton("单选按钮2",false);

   // 组合框的处理
   JComboBox comboBox = new JComboBox();
   comboBox.setToolTipText("请选择…");
   comboBox.addItem("浙江");
   comboBox.addItem("江西");
   comboBox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     JComboBox comboBox =(JComboBox)e.getSource();
     comboBox.addItem("程序员");
     comboBox.addItem("分析员");
    }
   });

   // 列表框的处理
   DefaultListModel litem = new DefaultListModel();
   litem.addElement("香蕉");
   litem.addElement("水果");
   JList list = new JList(litem);

   list.addListSelectionListener(new ListSelectionListener () {
    public void valueChanged(ListSelectionEvent e) {
     JList l = (JList)e.getSource();
     Object s= l.getSelectedValue();
     JOptionPane.showMessageDialog(null,s,"消息框",JOptionPane.YES_OPTION);
    }
   });

   // 增加按钮组
   buttonGroup.add(radioButton1);
   buttonGroup.add(radioButton2);

   // 增加各种按钮到JPanel中显示
   add(button);
   add(toggleButton);
   add(checkBox);
   add(radioButton1);
   add(radioButton2);
   add(comboBox);

   add(list);

   this.setBorder(new EtchedBorder(EtchedBorder.LOWERED,Color.LIGHT_GRAY,Color.blue));
  }
 }

 ////////////////////////////////////////////////////////////////////////////
 /**
  * 中间层模块,继承JPanel,初始化页签,并在页签中设置文本区,表格,
  * 文本区上下用分隔条分隔
  * JPanel–+
  *         -JTabbedPane–+
  *                 –Draw –JTable  -JTextAreas -JText –JPopupMenu
  */
 class CenterPanel extends JPanel {
  public CenterPanel() {
   JTabbedPane tab = new JTabbedPane(JTabbedPane.TOP);

   JTextField textField = new JTextField("文本域,点击打开<文件按钮>可选择文件");
   textField.setActionCommand("textField");

   JTextPane textPane = new JTextPane();
   textPane.setCursor(new Cursor(Cursor.TEXT_CURSOR));
   textPane.setText("编辑器,试着点击文本区,试着拉动分隔条。");

   textPane.addMouseListener(new MouseAdapter () {
    public void mousePressed (MouseEvent e) {
     JTextPane textPane = (JTextPane)e.getSource();
     textPane.setText("编辑器点击命令成功");
    }
   });

   JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,textField,textPane);

   JTable table = new JTable(10,10);

   JPanel pane  = new JPanel();
   pane.add(table.getTableHeader(),BorderLayout.NORTH);
   pane.add(table);

   tab.addTab("文本演示",splitPane);
   tab.addTab("表格演示",pane);
   tab.setPreferredSize(new Dimension(500,600));
   this.add(tab);
   this.setEnabled(true);
  }
 }

}

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;

public class JEditor extends Frame implements ActionListener {

    MenuBar menuBar = new MenuBar();    //菜单栏
    TextArea textArea = new TextArea(); //文本区

    // 文件菜单
    Menu fileMenu = new Menu("File");
    MenuItem newItem = new MenuItem("New");
    MenuItem openItem = new MenuItem("Open");
    MenuItem saveItem = new MenuItem("Save");
    MenuItem saveAsItem = new MenuItem("Save As");
    MenuItem exitItem = new MenuItem("Exit");

    // 编辑菜单
    Menu editMenu = new Menu("Edit");
    MenuItem selectItem = new MenuItem("Select All");
    MenuItem copyItem = new MenuItem("Copy");
    MenuItem cutItem = new MenuItem("Cut");
    MenuItem pasteItem = new MenuItem("Paste");

    String fileName = "NoName.txt"; //设置默认的文件名
    Toolkit toolKit = Toolkit.getDefaultToolkit();
    Clipboard clipBoard = toolKit.getSystemClipboard(); //剪切板对象

    // 打开文件对话框&保存文件对话框
    private FileDialog openFileDialog = new FileDialog(this, "Open File", FileDialog.LOAD);
    private FileDialog saveAsFileDialog = new FileDialog(this,"Sava File As", FileDialog.SAVE);

    public JEditor(){
        setTitle("NotePad");
        setFont(new Font("Times New Roman", Font.PLAIN,12));
        setBackground(Color.white);
        setSize(600,400);

        fileMenu.add(newItem);
        fileMenu.add(openItem);
        fileMenu.addSeparator();
        fileMenu.add(saveItem);
        fileMenu.add(saveAsItem);
        fileMenu.addSeparator();
        fileMenu.add(exitItem);

        editMenu.add(selectItem);
        editMenu.addSeparator();
        editMenu.add(copyItem);
        editMenu.add(cutItem);
        editMenu.add(pasteItem);

        menuBar.add(fileMenu);
        menuBar.add(editMenu);

        setMenuBar(menuBar);

        add(textArea);

        addWindowListener(new WindowAdapter(){
        // 指定窗口的退出方式
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        } );

        // 注册各个菜单项的事件监听器
        newItem.addActionListener(this);
        openItem.addActionListener(this);
        saveItem.addActionListener(this);
        exitItem.addActionListener(this);
        selectItem.addActionListener(this);
        copyItem.addActionListener(this);
        cutItem.addActionListener(this);
        pasteItem.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e){
        Object eventSource = e.getSource();
        // 利用事件源判断被点击的菜单项
        if(eventSource == newItem){
            textArea.setText("");   //新建时请空文本区
        } else if(eventSource == openItem) {
            openFileDialog.show();  //显示打开文件的对话框
            fileName = openFileDialog.getDirectory()+openFileDialog.getFile();
            if(fileName != null)
                readFile(fileName);
        } else if(eventSource == saveItem) {
            if(fileName != null)
                writeFile(fileName);
        } else if(eventSource == saveAsItem) {
            saveAsFileDialog.show(); //显示保存文件的对话框
            fileName = saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();
            if(fileName != null)
                writeFile(fileName);
        }else if(eventSource == selectItem){
            textArea.selectAll(); //全选
        }else if(eventSource == copyItem){
            String text = textArea.getSelectedText(); //复制
            StringSelection selection = new StringSelection(text);
            clipBoard.setContents(selection, null);
        }else if(eventSource == cutItem){
            String text = textArea.getSelectedText();
            StringSelection selection = new StringSelection(text);
            clipBoard.setContents(selection, null);
            //剪切时用空串代替被选字符。
            textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());

        }else if(eventSource == pasteItem){
            Transferable contents = clipBoard.getContents(this);
            if(contents==null) return;
            String text;
            text = "";
            try{
                text=(String)contents.getTransferData(DataFlavor.stringFlavor);
            }catch(Exception exception){

            }
            textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());
        }else if(eventSource == exitItem){
            System.exit(0);
        }
    }

    // 读文件
    public void readFile(String fileName){
        try{
            File file = new File(fileName);
            FileReader readIn = new FileReader(file);
            int size = (int)file.length();
            int charsRead = 0;
            char[] content = new char[size];
            while(readIn.ready())
                charsRead += readIn.read(content, charsRead, size-charsRead);
            readIn.close();
            textArea.setText(new String(content,0,charsRead));
        }catch(IOException e){
            System.out.println("Error opening File");
        }
    }

    // 写文件
    public void writeFile(String fileName){
        try{
            File file = new File(fileName);
            FileWriter writeOut = new FileWriter(file);
            writeOut.write(textArea.getText());
            writeOut.close();
        }catch(IOException e){
            System.out.println("Error writing file");
        }
    }

    public static void main(String[] args) {
        Frame frame = new JEditor();
        // 让窗口居中显示
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = frame.getSize();
        if(frameSize.height > screenSize.height){
            frameSize.height = screenSize.height;
        }
        if(frameSize.width > screenSize.width){
            frameSize.width = screenSize.width;
        }
        frame.setLocation((screenSize.width – frameSize.width)/2, (screenSize.height – frameSize.height)/2);
        frame.show();
    }

}

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.Date;
import java.util.StringTokenizer;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.SwingConstants;
import javax.swing.UIManager;

/**
 * <p>Title: Swing日历</p>
 * <p>Description: 操作日期</p>
 * @author duxu2004
 * @version 1.0.1
 */

public class JCalendar extends JPanel{
//动态表示年月日
  private int year=0;
  private int month=0;
  private int day=0;
//主面板
  private JPanel Main = new JPanel();
//日面板
  private JPanel jPanelDay = new JPanel();
//月面板
  private JPanel jPanelMonth = new JPanel();
//年的输入位置
  private JTextField Year = new JTextField();
//月的输入位置
  private JTextField Month = new JTextField();
//减少月份
  private JButton MonthDown = new JButton();
//增加月份
  private JButton MonthUp = new JButton();

  private JPanel jPanelButton = new JPanel();
//减少年份
  private JButton YearDown = new JButton();
//增加年份
  private JButton YearUp = new JButton();
//显示日期的位置
  private JLabel Out = new JLabel();
//中国时区,以后可以从这里扩展可以设置时区的功能
  private Locale l=Locale.CHINESE;
//主日历
  private GregorianCalendar cal=new GregorianCalendar(l);
//星期面板
  private JPanel weekPanel=new JPanel();
//天按钮组
  private JToggleButton[] days=new JToggleButton[42];
//天面板
  private JPanel Days = new JPanel();
//标示
  private JLabel jLabel1 = new JLabel();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel3 = new JLabel();
  private JLabel jLabel4 = new JLabel();
  private JLabel jLabel5 = new JLabel();
  private JLabel jLabel6 = new JLabel();
  private JLabel jLabel7 = new JLabel();
//当前选择的天数按钮
  private JToggleButton cur=null;
//月份天数数组,用来取得当月有多少天
                 // 1  2  3  4  5  6  7  8  9  10 11 12
  private int[] mm={31,28,31,30,31,30,31,31,30,31,30,31};

//空日期构造函数
  public JCalendar() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }

  }
//带日期设置的构造函数
  public JCalendar(int year, int month, int day) {
    cal.set(year, month, day);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
//带日历输入的构造函数
  public JCalendar(GregorianCalendar calendar) {
    cal=calendar;
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
  //带日期输入的构造函数
  public JCalendar(Date date) {
    cal.setTime(date);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
  //初始化组件
  private void jbInit() throws Exception {
   //初始化年、月、日
    iniCalender();

    this.setLayout(new BorderLayout());
    this.setBorder(BorderFactory.createRaisedBevelBorder());
    this.setMaximumSize(new Dimension(200, 200));
    this.setMinimumSize(new Dimension(200, 200));
    this.setPreferredSize(new Dimension(200, 200));

    Main.setLayout(new BorderLayout());
    Main.setBackground(SystemColor.info);
    Main.setBorder(null);

    Out.setBackground(Color.lightGray);
    Out.setHorizontalAlignment(SwingConstants.CENTER);
    Out.setMaximumSize(new Dimension(100, 19));
    Out.setMinimumSize(new Dimension(100, 19));
    Out.setPreferredSize(new Dimension(100, 19));

    jLabel1.setForeground(Color.red);
    jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
    jLabel1.setText("日");
    jLabel2.setForeground(Color.blue);
    jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel2.setHorizontalTextPosition(SwingConstants.CENTER);
    jLabel2.setText("六");
    jLabel3.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel3.setHorizontalTextPosition(SwingConstants.CENTER);
    jLabel3.setText("五");
    jLabel4.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel4.setHorizontalTextPosition(SwingConstants.CENTER);
    jLabel4.setText("四");
    jLabel5.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel5.setHorizontalTextPosition(SwingConstants.CENTER);
    jLabel5.setText("三");
    jLabel6.setBorder(null);
    jLabel6.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel6.setHorizontalTextPosition(SwingConstants.CENTER);
    jLabel6.setText("二");
    jLabel7.setBackground(Color.lightGray);
    jLabel7.setForeground(Color.black);
    jLabel7.setBorder(null);
    jLabel7.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel7.setHorizontalTextPosition(SwingConstants.CENTER);
    jLabel7.setText("一");

    weekPanel.setBackground(UIManager.getColor("InternalFrame.activeTitleGradient"));
    weekPanel.setBorder(BorderFactory.createEtchedBorder());
    weekPanel.setLayout(new GridLayout(1,7));
    weekPanel.add(jLabel1, null);
    weekPanel.add(jLabel7, null);
    weekPanel.add(jLabel6, null);
    weekPanel.add(jLabel5, null);
    weekPanel.add(jLabel4, null);
    weekPanel.add(jLabel3, null);
    weekPanel.add(jLabel2, null);

    MonthUp.setAlignmentX((float) 0.0);
    MonthUp.setActionMap(null);

    jPanelMonth.setBackground(SystemColor.info);
    jPanelMonth.setLayout(new BorderLayout());
    jPanelMonth.setBorder(BorderFactory.createEtchedBorder());


    Month.setBorder(null);
    Month.setHorizontalAlignment(SwingConstants.CENTER);
    Month.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        Month_mouseClicked(e);
      }
    });
    Month.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyPressed(KeyEvent e) {
        Month_keyPressed(e);
      }
    });

    MonthDown.setBorder(null);
    MonthDown.setText("\u25C4");
    MonthDown.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        MonthDown_actionPerformed(e);
      }
    });
    MonthUp.setBorder(null);
    MonthUp.setText("\u25BA");
    MonthUp.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        MonthUp_actionPerformed(e);
      }
    });


    jPanelButton.setLayout(null);
    jPanelButton.setBorder(null);
    jPanelButton.addComponentListener(new java.awt.event.ComponentAdapter() {
      public void componentResized(java.awt.event.ComponentEvent evt) {
        jPanelButtonComponentResized(evt);
      }
    });

    Year.setBorder(BorderFactory.createEtchedBorder());
    Year.setMaximumSize(new Dimension(80, 25));
    Year.setMinimumSize(new Dimension(80, 25));
    Year.setPreferredSize(new Dimension(80, 25));
    Year.setHorizontalAlignment(SwingConstants.CENTER);
    Year.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        Year_mouseClicked(e);
      }
    });
    Year.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyPressed(KeyEvent e) {
        Year_keyPressed(e);
      }
    });

    YearDown.setBorder(null);
    YearDown.setMaximumSize(new Dimension(16, 16));
    YearDown.setMinimumSize(new Dimension(16, 16));
    YearDown.setPreferredSize(new Dimension(16, 16));
    YearDown.setSize(new Dimension(16, 16));
    YearDown.setText("▼");
    YearDown.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        YearDown_actionPerformed(e);
      }
    });
    YearUp.setBorder(null);
    YearUp.setMaximumSize(new Dimension(16, 16));
    YearUp.setMinimumSize(new Dimension(16, 16));
    YearUp.setPreferredSize(new Dimension(16, 16));
    YearUp.setSize(new Dimension(16, 16));
    YearUp.setText("▲");
    YearUp.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        YearUp_actionPerformed(e);
      }
   });

    jPanelDay.setLayout(new BorderLayout());

    Days.setLayout(new GridLayout(6,7));
    Days.setBackground(SystemColor.info);

    for(int i=0;i<42;i++){
      days[i]=new JToggleButton();
      days[i].setBorder(null);
      days[i].setBackground(SystemColor.info);
      days[i].setHorizontalAlignment(SwingConstants.CENTER);
      days[i].setHorizontalTextPosition(SwingConstants.CENTER);
      //days[i].setSize(l,l);
      days[i].addActionListener(new java.awt.event.ActionListener(){
        public void actionPerformed(ActionEvent e) {
          day=Integer.parseInt(((JToggleButton)e.getSource()).getText());
          showDate();
          showDays();
        }
      });
      Days.add(days[i]);
    }

    this.add(Main,  BorderLayout.NORTH);
    this.add(jPanelDay, BorderLayout.CENTER);
    this.add(jPanelMonth,  BorderLayout.SOUTH);

    Main.add(Year,  BorderLayout.CENTER);
    Main.add(Out, BorderLayout.WEST);
    Main.add(jPanelButton,  BorderLayout.EAST);

    jPanelButton.add(YearUp);
    jPanelButton.add(YearDown);

    jPanelDay.add(weekPanel,BorderLayout.NORTH);
    jPanelDay.add(Days, BorderLayout.CENTER);

    jPanelMonth.add(Month, BorderLayout.CENTER);
    jPanelMonth.add(MonthDown,  BorderLayout.WEST);
    jPanelMonth.add(MonthUp,  BorderLayout.EAST);

    showMonth();
    showYear();
    showDate();
    showDays();
  }

  //自定义重画年选择面板
  void jPanelButtonComponentResized(java.awt.event.ComponentEvent evt){
    YearUp.setLocation(0,0);
    YearDown.setLocation(0,YearUp.getHeight());
    jPanelButton.setSize(YearUp.getWidth(),YearUp.getHeight()*2);
    jPanelButton.setPreferredSize(new Dimension(YearUp.getWidth(),YearUp.getHeight()*2));
    jPanelButton.updateUI();
  }

  //测试用
  public static void main(String[] args){
    JFrame f=new JFrame();
    f.setContentPane(new JCalendar());
    f.pack();
    //f.setResizable(false);
    f.show();
  }

  //增加年份
  void YearUp_actionPerformed(ActionEvent e) {
    year++;
    showYear();
    showDate();
    showDays();
  }

  //减少年份
  void YearDown_actionPerformed(ActionEvent e) {
    year–;
    showYear();
    showDate();
    showDays();
  }

  //减少月份
  void MonthDown_actionPerformed(ActionEvent e) {
    month–;
    if(month<0) {
      month = 11;
      year–;
      showYear();
    }
    showMonth();
    showDate();
    showDays();
  }

  //增加月份
  void MonthUp_actionPerformed(ActionEvent e) {
    month++;
    if(month==12) {
      month=0;
      year++;
      showYear();
    }
    showMonth();
    showDate();
    showDays();
  }

  //初始化年月日
  void iniCalender(){
    year=cal.get(Calendar.YEAR);
    month=cal.get(Calendar.MONTH);
    day=cal.get(Calendar.DAY_OF_MONTH);
  }

  //刷新月份
  void showMonth(){
    Month.setText(Integer.toString(month+1)+"月");
  }

  //刷新年份
  void showYear(){
    Year.setText(Integer.toString(year)+"年");
  }

  //刷新日期
  void showDate(){
    Out.setText(Integer.toString(year)+"-"+Integer.toString(month+1)+"-"+Integer.toString(day));
  }

  //重画天数选择面板
  void showDays() {
    cal.set(year,month,1);
    int firstDayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
    int n=mm[month];
    if(cal.isLeapYear(year)&&month==1) n++;
    int i=0;
    for(;i<firstDayOfWeek-1;i++){
      days[i].setEnabled(false);
      days[i].setSelected(false);
      days[i].setText("");
    }
    int d=1;
    for(;d<=n;d++){
      days[i].setText(Integer.toString(d));
      days[i].setEnabled(true);
      if(d==day) days[i].setSelected(true);
      else days[i].setSelected(false);;
      i++;
    }
    for(;i<42;i++){
      days[i].setEnabled(false);
      days[i].setSelected(false);
      days[i].setText("");
    }
  }

  //单击年份面板选择整个年份字符串
  void SelectionYear(){
    Year.setSelectionStart(0);
    Year.setSelectionEnd(Year.getText().length());
  }

  //单击月份面板选择整个月份字符串
  void SelectionMonth(){
    Month.setSelectionStart(0);
    Month.setSelectionEnd(Month.getText().length());
  }

  //月份面板响应鼠标单击事件
  void Month_mouseClicked(MouseEvent e) {
    //SelectionMonth();
    inputMonth();
  }

  //检验输入的月份
  void inputMonth(){
    String s;
    if(Month.getText().endsWith("月"))
    {
      s=Month.getText().substring(0,Month.getText().length()-1);
    }
    else s=Month.getText();
    month=Integer.parseInt(s)-1;
    this.showMe();
  }

  //月份面板键盘敲击事件响应
  void Month_keyPressed(KeyEvent e) {
    if(e.getKeyChar()==10)
      inputMonth();
  }

  //年份面板响应鼠标单击事件
  void Year_mouseClicked(MouseEvent e) {
    //SelectionYear();
    inputYear();
  }

  //年份键盘敲击事件响应
  void Year_keyPressed(KeyEvent e) {
    //System.out.print(new Integer(e.getKeyChar()).byteValue());
    if(e.getKeyChar()==10)
      inputYear();
  }

  //检验输入的年份字符串
  void inputYear() {
    String s;
    if(Year.getText().endsWith("年"))
    {
      s=Year.getText().substring(0,Year.getText().length()-1);
    }
    else s=Year.getText();
    year=Integer.parseInt(s);
    this.showMe();
  }

  //以字符串形式返回日期,yyyy-mm-dd
  public String getDate(){return Out.getText();}

  //以字符串形式输入日期,yyyy-mm-dd
  public void setDate(String date){
    if(date!=null){
      StringTokenizer f = new StringTokenizer(date, "-");
      if(f.hasMoreTokens())
        year = Integer.parseInt(f.nextToken());
      if(f.hasMoreTokens())
        month = Integer.parseInt(f.nextToken());
      if(f.hasMoreTokens())
        day = Integer.parseInt(f.nextToken());
      cal.set(year,month,day);
    }
    this.showMe();
  }

  //以日期对象形式输入日期
  public void setTime(Date date){
   cal.setTime(date);
   this.iniCalender();
   this.showMe();
  }

  //返回日期对象
  public Date getTime(){return cal.getTime();}

  //返回当前的日
  public int getDay() {
    return day;
  }

  //设置当前的日
  public void setDay(int day) {
    this.day = day;
    cal.set(this.year,this.month,this.day);
    this.showMe();
  }

  //设置当前的年
  public void setYear(int year) {
    this.year = year;
    cal.set(this.year,this.month,this.day);
    this.showMe();
  }

  //返回当前的年
  public int getYear() {
    return year;
  }

  //返回当前的月
  public int getMonth() {
    return month;
  }

  //设置当前的月
  public void setMonth(int month) {
    this.month = month;
    cal.set(this.year,this.month,this.day);
    this.showMe();
  }

  //刷新
  public void showMe(){
   this.showDays();
   this.showMonth();
   this.showYear();
   this.showDate();
  }

}

import java.util.Set;
import java.util.Iterator;
import java.util.Properties;

import java.io.IOException;
import java.io.InputStream;

class PropertiesTest {

    public static void main(String args[]){

        PropertiesTest test = new PropertiesTest();
        InputStream in = test.getClass().getResourceAsStream("/a.properties");;

        Properties props = new Properties();
        try{
            props.load(in);
        } catch(IOException e){
            e.printStackTrace();
        }

//      System.out.println(props.getProperty("key name"));

        Set set = props.keySet();
        Iterator it = set.iterator();

        System.out.println("Begin …");
        while(it.hasNext()){
            System.out.println((String)it.next());
        }
        System.out.println("End");
    }


}

        席慕容说:“生命是一条奔流不息的河,我们都是那个过河的人。”在生命之河的左岸是忘记,在生命之河的右岸是铭记。我们乘坐着各自独有的船在左岸与右岸穿梭,才知道——忘记该忘记的,铭记该铭记的。

  行走在人生路上,我们笑看窗外花开花落、叶枯叶落,静观天外云卷云舒、风停风起。在路上,我们经历着太多太多悲喜交集的事,在生命之河的航行过程之中,我们学会了忘记该忘记的悲欢之事,学会了铭记该铭记的点点滴滴。

  东坡披发仰天大呼“大江东去”,他面临的那些烦心琐事顷刻之间沉入滚滚波涛之中,消失得无影无踪。壮阔的滔滔江水让东坡选择忘记,忘记那些失意、悲伤,忘记那些仕途的不得意。陶潜伴着“庄生晓梦迷蝴蝶”中的翩翩起舞的蝴蝶在东蓠之下悠然采菊。面对南山,渊明选择忘记,忘记那些官场的丑恶,忘记自己遇到的所有不快,这是心灵的选择,这是过河人在“河”的两岸所做出的明智的选择,这更是明智的“摆渡”。

  人们在河的左岸停留着,在这之外,同样又有在右岸快乐生活着的人们。

  坐在池边亭下泪流满面的独酌的易安居士,用她的文字告诉我她永远铭记着这一生之中所经历的点点滴滴,那是她在“争渡”途中所做出的选择。海子用“面朝大海,春暖花开”告诉我“从明天起”他将记住所有的人生之“水”,因为那是他用于“浇灌”他的“花儿”的“玉露”。三毛用她的文字永远地记住了撒哈拉的灵魂。凡·高用《向日葵》永远记住了他的“船”……

  这些是生命之河两岸的人生,这是忘记与记忆的选择。风吹起花瓣如同阵阵破碎的童年,决荒的古乐诠释灵魂的落差,躲在梦与记忆的深处,听花与黑夜唱尽梦魇,唱尽繁华,唱断所有记忆的来路,由分明的笑和谁也不知道的不分明的泪来忘记该忘记的不快和琐碎,来铭记该铭记的深刻与永恒。

  茕茕白兔,东走西顾,衣不如新,人不如故。航行于“生命之河”中,坐在自己独有的船上,知道——忘记在左,铭记在右,中间是无尽穿梭!

        (一百年前,谭嗣同为变法血染菜市口,舍生取义、杀身成仁。沧海浮生、岁月如潮,谭嗣同永在时间里轮回,吾国吾民永远铭记。)

  春风无色黯河山,东航不敢望马关

  神州病骨似秋草,六朝古道啼血鸟

  国破方知人种贱,马关条约不忍看

  连年战乱烽火寒,三军挥泪洒台湾

  青山幽径横尸骨,驿路桥边闻鬼哭。

  百年风雨血倒流,青山白骨无人收

  金銮殿内郁苍苍,君臣相顾泪沾裳

  何处犹唱后庭曲,一曲悲歌诉兴亡

  亡国条约亡国恨,何堪此时亡国声

  回首故国与山川,满目苍夷有谁怜?

  南海举子万言书,石破天惊动地文

  陈述维新与变法,雪雨纷纷绕宫门

  巨风吹浪紫焰开,雷霆波涌向天拍

  皇都少年与袖斗,唤得日月不沉沦

  提倡西学废科举,西宫太后泪如雨

  祖宗之法不能变,亡国不能亡祖先

  君王一去入瀛台,风卷落花扫芳尘。

  道是天公感秋色,染得晴空透碧红

  嗣同今年三十余,从此不见结发妻

  国之昌盛需流血,流血请从嗣同始。

  有心杀贼,无力回天

  死得其所,快哉!快哉!

  刑场吟哦万人惊,三十三年化碧土

  黄河呜咽向天注,抽刀一断断红尘

  可怜闺妻守空房,夜闻黄梅雨敲窗。

  花冠不整小窗开,疑是君郎化蝶来

  但见池塘淡淡风,烟柳何处觅郎踪

  小径一片残花色,不是花红是血红

  却把相思入哀筝,怨曲重招断头魂

  曲中有恨细细思,君在黄泉可闻知?

  纤指玉手十三弦,破镜分飞幽恨传

  贱妾独剪巴山雨,暮雨朝云血杜鹃

  恍然湖上有归船,一帘幽梦半湖萍

  闻君江上和琴声,翻作蝴蝶浇风铃

  朱弦琴声九天来,风吹庭竹蒙玉尘

  阴阳相隔分歧路,和妻浅唱回五声

  曲终人散魂已远,画船东去橹声迟

  攀折柳条题血书,随江悠悠随君王

  “前尘往事不可追,一成相思一层灰

  来世化作采莲人,与君相逢横塘水”

  (借谭嗣同还魂,树一有血有肉有情有爱之人,铮铮铁骨与柔情似水,真英雄耳。其妻曰:“前尘往事不可追,一成相思一层灰。来世化作采莲人,与君相逢横水”意思就是:今生把你遗忘,来世再续前缘。谭嗣同为英雄被铭记,被妻忍痛忘记今生之情,其实,两者一样刻骨铭心。)