<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[E动中国]]></title>
<link>http://www.edongcn.com/blog/</link>
<description><![CDATA[探索,学习,思考,创新,WEB2.0,CSS/XHTML,JAVAScri&#112;t,C#,STRUTS]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[webmaster@edongcn.com(EdongCn)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>E动中国</title> 
	<url>http://www.edongcn.com/blog/images/logos.gif</url> 
	<link>http://www.edongcn.com/blog/</link> 
	<description>E动中国</description> 
</image>

			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=130</link>
			<title><![CDATA[一步一步教你用Swing之JDK 6的安装和环境设定]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[技术连载]]></category>
			<pubDate>Thu,27 Dec 2007 23:33:15 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=130</guid>	
		<description><![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">为了开发图形化界面的应用程序</span><span lang="EN-US"><font face="Calibri">,java</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">里面为我们准备</span><span lang="EN-US"><font face="Calibri">Swing.</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">在这里我们一步一步的讲解来说明</span><span lang="EN-US"><font face="Calibri">Swing</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的各种组件的使用方法</span><span lang="EN-US"><font face="Calibri">.</font></span></font></p>
<b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: &quot;Calibri&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 18.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><br style="PAGE-BREAK-BEFORE: always" clear="all" /></span></b>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; mso-font-kerning: 18.0pt"><font face="Calibri">JDK 6</font></span></b><b><span style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-font-kerning: 18.0pt">的安装和环境设定</span></b></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><b><span style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-font-kerning: 18.0pt"></span></b></font>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-language: JA"><span style="mso-list: Ignore">&Oslash;<span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp; </span></span></span><b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; mso-font-kerning: 18.0pt"><font face="Calibri">JDK 6</font></span></b><b><span style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-font-kerning: 18.0pt">的下载</span></b><span lang="EN-US" style="mso-fareast-language: JA">&nbsp;</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><font size="2"><span lang="EN-US" style="mso-fareast-language: JA"></span></font>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font size="2">点击下面的网址进入下载页面</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="mso-fareast-language: JA"><a href="http://java.sun.com/javase/downloads/index.jsp"><font face="Calibri" size="2">http://java.sun.com/javase/downloads/index.jsp</font></a></span><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"><img height="332" alt="" src="http://www.edongcn.com/blog/attachments/month_0712/n2007122723514.jpg" width="553" border="0" v:shapes="_x0000_i1025" /></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">在上面的下载页面中</span><span lang="EN-US"><font face="Calibri">,jdk</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的种类有很多</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">我们要下载的是</span><span style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">「</span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: &quot;Courier New&quot;; LETTER-SPACING: 0.75pt">JDK 6 Update 3</span><span style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">」</span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: &quot;Courier New&quot;; LETTER-SPACING: 0.75pt">,</span><span style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">点击上图中红色方框标出来部分的</span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: &quot;Courier New&quot;; LETTER-SPACING: 0.75pt">[&gt;&gt;download] </span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font size="2"><img height="332" alt="" src="http://www.edongcn.com/blog/attachments/month_0712/f2007122723545.jpg" width="553" border="0" v:shapes="_x0000_i1026" /></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">进行</span><span lang="EN-US"><font face="Calibri">License</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">同不同意选择</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">同意的话</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">选择</span><span lang="EN-US"><font face="Calibri">[Accept]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">如上图</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"><img height="332" alt="" src="http://www.edongcn.com/blog/attachments/month_0712/e2007122723645.jpg" width="553" border="0" v:shapes="_x0000_i1027" /></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">请选择相应操作系统平台的链接进行文件下载</span><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Calibri">,</font></span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">这里我们选择</span><span lang="EN-US" style="FONT-SIZE: 9pt">&nbsp;</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span lang="JA" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-fareast-language: JA">「</span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: &quot;Courier New&quot;; LETTER-SPACING: 0.75pt; mso-fareast-language: JA">Windows Platform - Java(TM) SE Development Kit 6 Update 3</span><span lang="JA" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-fareast-language: JA">」</span><span style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">的</span><span lang="JA" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-fareast-language: JA">「</span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: &quot;Courier New&quot;; LETTER-SPACING: 0.75pt; mso-fareast-language: JA">Windows Offline Installation, Multi-language</span><span lang="JA" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-fareast-language: JA">」</span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: &quot;Courier New&quot;; LETTER-SPACING: 0.75pt">,</span><span style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: 宋体; LETTER-SPACING: 0.75pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">如上图</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-language: JA"><span style="mso-list: Ignore">&Oslash;<span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp; </span></span></span><b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; mso-font-kerning: 18.0pt"><font face="Calibri">JDK 6</font></span></b><b><span style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-font-kerning: 18.0pt">的安装</span></b><span lang="EN-US" style="mso-fareast-language: JA">&nbsp;</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-language: JA"><span style="mso-list: Ignore">&Oslash;<span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp; </span></span></span><b><span style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-font-kerning: 18.0pt">文档的下载</span></b><span lang="EN-US" style="mso-fareast-language: JA">&nbsp;</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-language: JA"><span style="mso-list: Ignore">&Oslash;<span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp; </span></span></span><b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; mso-font-kerning: 18.0pt"><font face="Calibri">PATH</font></span></b><b><span style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-font-kerning: 18.0pt">的设定</span></b><span lang="EN-US" style="mso-fareast-language: JA">&nbsp;</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1">&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span lang="EN-US"><font face="Calibri"></font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span lang="EN-US"><font face="Calibri">Java</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的编译和执行程序都放在</span><span lang="EN-US"><font face="Calibri">jdk</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">安装目录的</span><span lang="EN-US"><font face="Calibri">bin</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">文件夹里</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font size="2"><img height="332" alt="" src="http://www.edongcn.com/blog/attachments/month_0712/o2007122723736.jpg" width="553" border="0" v:shapes="_x0000_i1028" /></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">为了在任何目录下都能用</span><span lang="EN-US"><font face="Calibri">java</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的编译</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">执行程序</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">我们需要对环境变量</span><span lang="EN-US"><font face="Calibri">[</font></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: &quot;Courier New&quot;; LETTER-SPACING: 0.75pt">PATH</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">进行设置</span><span lang="EN-US"><font face="Calibri">,</font></span></font><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">从控件面板里点击</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">系统</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">打开系统属性窗口</span></font>&nbsp;&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font size="2"><img height="440" alt="" src="http://www.edongcn.com/blog/attachments/month_0712/c200712272380.jpg" width="421" border="0" v:shapes="_x0000_i1029" /></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">然后选择</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">高级</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">菜单</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">点击</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">环境变量</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">按钮</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">打开</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">环境变量</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">窗口</span><span lang="EN-US"><font face="Calibri">.</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img height="440" alt="" src="http://www.edongcn.com/blog/attachments/month_0712/420071227231430.jpg" width="421" border="0" v:shapes="_x0000_i1029" /></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">找到</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">系统变量</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">中的</span><span lang="EN-US"><font face="Calibri">[PATH]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">选项之后</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">点击编辑按钮</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">在弹南的</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">编辑系统变量</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">窗口中加入</span><span lang="EN-US"><font face="Calibri">java</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">执行文件的路径</span><span lang="EN-US"><font face="Calibri">.</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">如下</span><span lang="EN-US"><font face="Calibri">:</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/t20071227234029.jpg" /></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">如果</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">系统变量</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">里没有</span><span lang="EN-US"><font face="Calibri">[PATH]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">选项的话</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">请点击</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">新建</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">按钮</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/u20071227234053.jpg" /></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">然后在</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">新建系统变量</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">窗口中设定</span><span lang="EN-US"><font face="Calibri">[PATH]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的值</span><span lang="EN-US"><font face="Calibri">.</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: &quot;Calibri&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-size: 11.0pt"></span>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/320071227234110.jpg" /></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">接下来确认一下环境有没有正确配置好</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">请打开命令行窗口</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">然后输入</span><span lang="EN-US"><font face="Calibri">[java],</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">点回车</span><span lang="EN-US"><font face="Calibri">.</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/y20071227234132.jpg" /></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">如果出现下面这样的命令使用帮助信息的话</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">说明环境变量已经正确设定</span><span lang="EN-US"><font face="Calibri">.</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"></span><font size="2"><span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-language: JA"><span style="mso-list: Ignore"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/z20071227234154.jpg" /></span></span></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-language: JA"><span style="mso-list: Ignore"></span></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-language: JA"><span style="mso-list: Ignore">&Oslash;<span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp; </span></span></span><b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; mso-font-kerning: 18.0pt"><font face="Calibri">JAVA HOME</font></span></b><b><span style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-font-kerning: 18.0pt">的设定</span></b><span lang="EN-US" style="mso-fareast-language: JA">&nbsp;</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span lang="EN-US" style="mso-fareast-language: JA"></span></font>&nbsp;</p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">很多软件里为了使用</span><span lang="EN-US"><font face="Calibri">java,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">一般都会去搜索</span><span lang="EN-US"><font face="Calibri">jdk</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的安装目录</span><span lang="EN-US"><font face="Calibri">.</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">这时我们就需要把</span><span lang="EN-US"><font face="Calibri">jdk</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的安装根目录设定到环境变量</span><font face="Calibri"> <span lang="EN-US">[JAVA_HOME]</span></font><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">里</span><span lang="EN-US"><font face="Calibri">.(</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">这个环境变量并不是必须的</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">不过在一些软件中</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">如果不设定的话</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">可能会找不到</span><span lang="EN-US"><font face="Calibri">jdk</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的安装目录</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">所以为了确保起见</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">建议对这个环境变量进行设定</span><span lang="EN-US"><font face="Calibri">)</font></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span lang="EN-US"></span></font>&nbsp;</p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">设定过程如下</span><span lang="EN-US"><font face="Calibri">:</font></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">首行在控件面板中点击</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">系统</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">图标打开</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">系统属性</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">窗口</span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><span lang="EN-US"><font size="2"></font></span></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/620071227234249.jpg" /></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">然后点击</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">高级菜单</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">中的</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">环境变量</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">按钮打开</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">环境变量</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">窗口</span><span lang="EN-US"><font face="Calibri">,</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">如下</span><span lang="EN-US"><font face="Calibri">:</font></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/92007122723438.jpg" /></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">点击</span><span lang="EN-US"><font face="Calibri">[</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">新建</span><span lang="EN-US"><font face="Calibri">]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">按钮添加</span><span lang="EN-US"><font face="Calibri">[JAVA_HOME]</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">变量</span><span lang="EN-US"><font face="Calibri">:</font></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><span lang="EN-US"><font face="Calibri" size="2"></font></span></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 18.0pt; mso-bidi-font-weight: bold"><span style="mso-list: Ignore"></span></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 18.0pt; mso-bidi-font-weight: bold"><span style="mso-list: Ignore"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/d20071227234331.jpg" /></span></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 18.0pt; mso-bidi-font-weight: bold"><span style="mso-list: Ignore"></span></span></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 18.0pt; mso-bidi-font-weight: bold"><span style="mso-list: Ignore">&Oslash;<span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp; </span></span></span><b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; mso-font-kerning: 18.0pt"><font face="Calibri">JAVA</font></span></b><b><span style="FONT-SIZE: 9pt; COLOR: #666666; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-font-kerning: 18.0pt">版本的确认</span></b><b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; mso-font-kerning: 18.0pt">&nbsp;</span></b></font></p>
<p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0"><font size="2"><b><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #666666; mso-font-kerning: 18.0pt"></span></b></font>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span>前面我们已经介绍了环境变量的设定<font face="Calibri">,</font>最后我们来确认一下我们安装的<font face="Calibri">jdk</font>的版本是否正确<font face="Calibri">. </font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span></span></font><font size="2"><span>请在命令行窗口中输入<font face="Calibri">[java -version] </font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font face="Calibri" size="2"><span></span></font><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/b20071227234349.jpg" /></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">然后就会出现</span><span lang="EN-US"><font face="Calibri">java</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">和</span><span lang="EN-US"><font face="Calibri">JRE</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的版本信息如下</span><span lang="EN-US"><font face="Calibri">:</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span lang="EN-US"></span></font><span lang="EN-US"><font size="2"></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font size="2"><img alt="" src="http://www.edongcn.com/blog/attachments/month_0712/820071227234419.jpg" /></font></span></p>]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=128</link>
			<title><![CDATA[如何显示一个数据库里的所有表（ACCESS）]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[ASP技术]]></category>
			<pubDate>Sun,10 Dec 2006 11:08:39 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=128</guid>	
		<description><![CDATA[使用这个过程的前提条件是要在调用前写好数据库连接的代码。 <br/>一般为&lt;!--#include file=&#34;conn.asp&#34;--&gt; <br/>&lt;%sub Schema_show()%&gt; <br/>&nbsp;&nbsp; &lt;table&nbsp;&nbsp;border=&#34;1&#34; cellspacing=&#34;0&#34; cellpadding=&#34;3&#34; style=’border-collapse:collapse;’ bordercolor=&#34;#006699&#34;&gt; <br/>&nbsp;&nbsp; &lt;% <br/>&nbsp;&nbsp; set rs=Conn.openSchema(20)&nbsp;&nbsp;<br/>&nbsp;&nbsp; rs.movefirst <br/>&nbsp;&nbsp; %&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <br/>&nbsp;&nbsp; &lt;%for i=0 to rs.fields.count-1%&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;%=rs.fields(i).name%&gt;&lt;/td&gt; <br/>&nbsp;&nbsp; &lt;%next%&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt; <br/>&nbsp;&nbsp; &lt;%do while not rs.eof%&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <br/>&nbsp;&nbsp; &lt;%for i=0 to rs.fields.count-1%&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;%if rs.fields(i).name=&#34;TABLE_NAME&#34; and (rs(&#34;TABLE_TYPE&#34;)=&#34;TABLE&#34; o&#114; rs(&#34;TABLE_TYPE&#34;)=&#34;VIEW&#34;) then%&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href=&#34;?table=&lt;%=rs(i)%&gt;&#34;&gt;&lt;%=rs(i)%&gt;&lt;/a&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;%else%&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;%=rs(i)%&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;%end if%&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt; <br/>&nbsp;&nbsp; &lt;%next%&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt; <br/>&nbsp;&nbsp; &lt;%rs.movenext <br/>&nbsp;&nbsp; loop <br/>&nbsp;&nbsp; rs.close <br/>&nbsp;&nbsp; set rs=nothing%&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;/table&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;%end sub%&gt;<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=127</link>
			<title><![CDATA[获取access库中表的个数及表的名称[收藏]]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[其它技术]]></category>
			<pubDate>Sun,10 Dec 2006 11:07:00 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=127</guid>	
		<description><![CDATA[&#39;功能：获取access库中表的个数及表的名称<br/>&#39;用ado怎样实现<br/>&#39;工程---&gt;引用---&gt;<a href="http://www.microsoft.com/china/homepage/ms.htm" target="_blank"><img src="http://www.edongcn.com/blog/images/keywords/microsoft.gif" border="0" alt=""/> Microsoft</a> ActiveX Data Object 2.x（版本号）<br/>&#39;----------------------------------------------------------------------------<br/>Private Sub Form_Load()<br/>Dim adoCN&nbsp;&nbsp; As New ADODB.Connection&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;定义数据库的连接<br/>Dim strCnn&nbsp;&nbsp; As New ADODB.Recordset<br/>Dim rstSchema As New ADODB.Recordset<br/>Dim I As Integer<br/>&nbsp;&nbsp; str1 = &#34;Provider=<a href="http://www.microsoft.com/china/homepage/ms.htm" target="_blank"><img src="http://www.edongcn.com/blog/images/keywords/microsoft.gif" border="0" alt=""/> Microsoft</a>.Jet.OLEDB.4.0;Data Source=c:\Northwind.MDB;Persist Security Info=False&#34;<br/>&nbsp;&nbsp; adoCN.Open str1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; Set rstSchema = adoCN.OpenSchema(adSchemaTables)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; Do Until rstSchema.EOF<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If rstSchema!TABLE_TYPE = &#34;TABLE&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out = out &amp; &#34;Table&nbsp;&nbsp;name:&nbsp;&nbsp;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rstSchema!TABLE_NAME &amp; vbCr &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#34;Table&nbsp;&nbsp;type:&nbsp;&nbsp;&#34; &amp; rstSchema!TABLE_TYPE &amp; vbCr<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I = I + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rstSchema.MoveNext<br/>&nbsp;&nbsp; Loop<br/>&nbsp;&nbsp; MsgBox I<br/>&nbsp;&nbsp; rstSchema.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; adoCN.Close<br/>Debug.Print out<br/>End Sub&nbsp;&nbsp;<br/><br/><br/>方法二：<br/><br/> <br/><br/> Access 系统表 MsysObjects 包含了数据库对象列表。尽管未在文档中记载，你仍可通过查询它来获取你想要的。但是默认情况下无法操作系统表，必须手动设定权限收才能查询系统表。<br/>请参考以下动画：如何获取对msysobject的操作权限<br/><a href="http://access911.net/eg/swf/msobj&#101;ct.swf" target="_blank">http://access911.net/eg/swf/msobj&#101;ct.swf</a><br/><br/>警告：不要修改任何ACCESS系统表，否则会出现不可意料的情况.<br/><br/>使用下列 SQL 语句来获取你想要的<br/><br/>查询:<br/>Sel&#101;ct MSysObjects.Name FROM MsysObjects Wh&#101;re (Left([Name],1)&lt;&gt;&#34;~&#34;) AND (MSysObjects.Type)=5 o&#114;DER BY MSysObjects.Name; <br/><br/><br/>窗体:<br/>Sel&#101;ct MSysObjects.Name FROM MsysObjects Wh&#101;re (Left([Name],1)&lt;&gt;&#34;~&#34;) AND (MSysObjects.Type)=-32768 o&#114;DER BY MSysObjects.Name; <br/><br/><br/>表:<br/>Sel&#101;ct MSysObjects.Name FROM MsysObjects Wh&#101;re (Left([Name],1)&lt;&gt;&#34;~&#34;) AND (Left$([Name],4) &lt;&gt; &#34;Msys&#34;) AND (MSysObjects.Type)=1 o&#114;DER BY MSysObjects.Name; <br/><br/><br/>报表:<br/>Sel&#101;ct MSysObjects.Name FROM MsysObjects Wh&#101;re (Left([Name],1)&lt;&gt;&#34;~&#34;) AND (MSysObjects.Type)= -32764 o&#114;DER BY MSysObjects.Name; <br/><br/><br/>模块:<br/>Sel&#101;ct MSysObjects.Name FROM MsysObjects Wh&#101;re (Left([Name],1)&lt;&gt;&#34;~&#34;) AND (MSysObjects.Type)= -32761 o&#114;DER BY MSysObjects.Name; <br/><br/><br/>宏:<br/>Sel&#101;ct MSysObjects.Name FROM MsysObjects Wh&#101;re (Left([Name],1)&lt;&gt;&#34;~&#34;) AND (MSysObjects.Type)= -32766 o&#114;DER BY MSysObjects.Name;<br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=126</link>
			<title><![CDATA[获取Access中所有表和所有表字段属性的完美解决办法!不需要引用ADOX   ]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[其它技术]]></category>
			<pubDate>Sun,10 Dec 2006 11:02:49 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=126</guid>	
		<description><![CDATA[//schemaTable将取到所有用户表的信息,schemaTable取到指定表名的表的所有信息<br/>OleDbConnection conn = new OleDbConnection(strConn);<br/>conn.Open();<br/>DataTable schemaTable&nbsp;&nbsp;= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[]{null, null, null, &#34;table&#34;});<br/>DataTable schemaTable2&nbsp;&nbsp;= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[]{null, null, /*tablename*/, null});<br/>conn.Close();]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=125</link>
			<title><![CDATA[如何设置表的Caption和Description属性，即“标题”和“说明”属性]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[其它技术]]></category>
			<pubDate>Sun,10 Dec 2006 10:56:52 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=125</guid>	
		<description><![CDATA[注意！无法通过 JET SQL 来设置或者修改上述属性，JET SQL 不支持此功能，你可以联系<a href="http://www.microsoft.com/china/homepage/ms.htm" target="_blank"><img src="http://www.edongcn.com/blog/images/keywords/microsoft.gif" border="0" alt=""/> 微软</a>开发小组要他们在下一个版本中增加此功能。<br/>Function AppendCaption()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;引用DAO<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim Tbf As DAO.TableDef<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim fld As DAO.Field<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim p As DAO.Property<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim cp As DAO.Property<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TableName As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim FieldName As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;FieldName = &#34;First_name&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TableName = &#34;test&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;For Each Tbf In CurrentDb.TableDefs<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Debug.Print Tbf.Name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For Each fld In Tbf.Fields<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Debug.Print Fld.Name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If fld.Name = FieldName And Tbf.Name = TableName Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set cp = fld.Cr&#101;ateProperty(&#34;Caption&#34;, 12, &#34;aa&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fld.Properties.Append cp<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set cp = fld.Cr&#101;ateProperty(&#34;Description&#34;, 10, &#34;aa&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fld.Properties.Append cp<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For Each p In fld.Properties<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If p.Name = &#34;caption&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print Tbf.Name &amp; &#34;:&#34; &amp; fld.Name &amp; &#34;:&#34; &amp; &#34;pro:&#34;; p.Name &amp; &#34;--&#34; &amp; p.Value<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Fld.Properties.Del&#101;te &#34;Caption&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;删除属性<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>End Function<br/> <br/><br/><br/><br/><br/>下面再给一段函数<br/><br/>Function GetFieldProperty(F As Field, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal PropName As String) As Variant<br/>&nbsp;&nbsp; &#39;<br/>&nbsp;&nbsp; &#39; Returns NULL if the property doesn&#39;t exist<br/>&nbsp;&nbsp; &#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp; GetFieldProperty = F.Properties(PropName)<br/>End Function <br/><br/><br/><br/>Sub ModifyFieldProperty(F As Field, ByVal PropName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal PropType As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal NewVal As Variant)<br/>&nbsp;&nbsp; Dim P As Property<br/>&nbsp;&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp; Set P = F.Properties(PropName)<br/>&nbsp;&nbsp;&nbsp;&nbsp; If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; Add property (as long as NewVal isn&#39;t Null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not IsNull(NewVal) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Goto 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; fail if can&#39;t add<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set P = F.Cr&#101;ateProperty(PropName, PropType, NewDesc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F.Properties.Append P<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; ElseIf IsNull(NewVal) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; Del&#101;te property<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Goto 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; fail if can&#39;t del&#101;te<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F.Properties.Del&#101;te PropName<br/>&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; Modify property<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Goto 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; fail if can&#39;t alt&#101;r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; P.Value = NewDesc<br/>&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Set P = Nothing<br/>End Sub <br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>调用函数如下：<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sub Test()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim db As Database, F As Field<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim v As Variant<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v = &#34;This is a description&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set db = DBEngine(0).OpenDatabase(&#34;NWIND.MDB&#34;) &#39; change name/path<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set F = db!Employees!Title<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; Get existing description<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print &#34;Existing Title Description is: &#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print GetFieldProperty(F, &#34;Description&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; Del&#101;te description<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ModifyFieldProperty F, &#34;Description&#34;, dbText, v<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print &#34;After deleting Description: &#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print GetFieldProperty(F, &#34;Description&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; Add description<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ModifyFieldProperty F, &#34;Description&#34;, dbText, &#34;Employee&#39;s Title&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print &#34;After adding new Description: &#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print GetFieldProperty(F, &#34;Description&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; Modify existing title<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ModifyFieldProperty F, &#34;Description&#34;, dbText, &#34;Emp Title&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print &#34;After modifying Description: &#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print GetFieldProperty(F, &#34;Description&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; Clean-up<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set F = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Close<br/>&nbsp;&nbsp; End Sub <br/><br/><br/>来源：<a href="http://support.microsoft.com/default.aspx?scid=kb" target="_blank">http://support.microsoft.com/default.aspx?scid=kb</a>;en-us;170549<br/><br/>最后再提供一个别人发表的代码（未测试）<br/>&#39;*******************************************************************************<br/>&#39;Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TableDefExist(strTableDef)<br/>&#39;Description:&nbsp;&nbsp;&nbsp;&nbsp;Returns a Boolean value that indicates whether an table define<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in currently database.<br/>&#39;Example:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableDefExist(&#34;TEXT&#34;)=True<br/>&#39;*******************************************************************************<br/>Function TableDefExist(ByVal strTableDef As String) As Boolean<br/>On Error GoTo TableDefExist_Err<br/>&nbsp;&nbsp;&nbsp;&nbsp;If CurrentDb.TableDefs(strTableDef).Name = strTableDef Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableDefExist = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;TableDefExist = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>TableDefExist_Err:<br/>&nbsp;&nbsp;&nbsp;&nbsp;TableDefExist = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>End Function<br/><br/><br/>Private Sub Cr&#101;ateTRDTableDef()<br/><br/>On Error GoTo Err_Cr&#101;ateTRDTableDef<br/><br/>Dim rstTRDTableSource As DAO.Recordset<br/>Dim rstTableDefine As DAO.Recordset<br/>Dim tdfTable As DAO.TableDef<br/>Dim dbCurrentDatabase As DAO.Database<br/>Dim fldField As Field<br/>Dim intCount As Integer<br/>Dim strTableName As String<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;DoCmd.Echo True, &#34;Creating table definition......&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set dbCurrentDatabase = CurrentDb<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set rstTRDTableSource = dbCurrentDatabase.OpenRecordset(&#34;Sel&#101;ct DISTINCT TRD_NAME,TABLE_NAME FROM TBL_TABLE_SOURCE&#34;, dbOpenDynaset)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Do While Not rstTRDTableSource.EOF<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTableName = rstTRDTableSource(&#34;TRD_NAME&#34;) &amp; &#34; - &#34; &amp; rstTRDTableSource(&#34;TABLE_NAME&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoCmd.Echo True, &#34;Creating &#34; &amp; strTableName &amp; &#34; table definition.....&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If TableDefExist(strTableName) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbCurrentDatabase.TableDefs.Del&#101;te strTableName<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set rstTableDefine = CurrentDb.OpenRecordset(&#34;Sel&#101;ct * FROM TBL_TABLE_SOURCE Wh&#101;re TRD_NAME=&#34; &amp; &#34;&#39;&#34; &amp; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rstTRDTableSource(&#34;TRD_NAME&#34;) &amp; &#34;&#39; AND TABLE_NAME=&#39;&#34; &amp; rstTRDTableSource(&#34;TABLE_NAME&#34;) &amp; &#34;&#39; o&#114;DER BY SEQUENCE&#34;, dbOpenDynaset)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set tdfTable = dbCurrentDatabase.Cr&#101;ateTableDef(strTableName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set fldField = tdfTable.Cr&#101;ateField(rstTableDefine.Fields(&#34;FIELD_NAME&#34;), GedFieldType(rstTableDefine.Fields(&#34;DATA_TYPE&#34;)), rstTableDefine.Fields(&#34;FIELD_SIZE&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdfTable.Fields.Append fldField<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbCurrentDatabase.TableDefs.Append tdfTable<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetMyProperty fldField, &#34;Caption&#34;, dbText, rstTableDefine.Fields(&#34;Caption&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetMyProperty fldField, &#34;Description&#34;, dbText, rstTableDefine.Fields(&#34;DESCRIPTION&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rstTableDefine.MoveNext<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;With rstTableDefine<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do While Not .EOF<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set fldField = tdfTable.Cr&#101;ateField(.Fields(&#34;FIELD_NAME&#34;), GedFieldType(.Fields(&#34;DATA_TYPE&#34;)), .Fields(&#34;FIELD_SIZE&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdfTable.Fields.Append fldField<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetMyProperty fldField, &#34;Caption&#34;, dbText, rstTableDefine.Fields(&#34;Caption&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetMyProperty fldField, &#34;Description&#34;, dbText, rstTableDefine.Fields(&#34;DESCRIPTION&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.MoveNext<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End With<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set tdfTable = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rstTableDefine.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set rstTableDefine = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rstTRDTableSource.MoveNext<br/>&nbsp;&nbsp;&nbsp;&nbsp;Loop<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;rstTRDTableSource.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set rstTRDTableSource = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;DoCmd.Echo True, &#34;Ready&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Exit_Cr&#101;ateTRDTableDef:<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Err_Cr&#101;ateTRDTableDef:<br/>&nbsp;&nbsp;&nbsp;&nbsp;MsgBox &#34;Error: &#34; &amp; Err &amp; vbCrLf &amp; Err.Description<br/>&nbsp;&nbsp;&nbsp;&nbsp;Resume Exit_Cr&#101;ateTRDTableDef<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>End Sub<br/><br/>&#39;*******************************************************************************<br/>&#39;Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GedFieldType(strDataType)<br/>&#39;Description:&nbsp;&nbsp;&nbsp;&nbsp;Returns a integer value that indicates data types<br/>&#39;Example:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType(&#34;dbText&#34;)=10<br/>&#39;*******************************************************************************<br/><br/>Function GedFieldType(strDataType As String) As Integer<br/>Sel&#101;ct Case strDataType<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbText&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 10<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbDate&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 8<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbDouble&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 7<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbFloat&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 21<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbInteger&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbLong&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbMemo&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 12<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbNumeric&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 6&nbsp;&nbsp; &#39;old is 19<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbSingle&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 6<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbTime&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 22<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbChar&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 18<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;dbCurrency&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 5<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GedFieldType = 0<br/>End Sel&#101;ct<br/><br/>End Function<br/><br/><br/>&#39;*******************************************************************************<br/>&#39;Sub:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetMyProperty(Obj,Name,Type,Setting)<br/>&#39;Description:&nbsp;&nbsp;&nbsp;&nbsp;Custom a user property<br/>&#39;Example:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetMyProperty fldField, &#34;Caption&#34;, dbText, &#34;Test Information&#34;<br/>&#39;*******************************************************************************<br/><br/>Sub SetMyProperty(Obj As Object, strName As String, intType As Integer, strSetting As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim Prp As Property<br/>&nbsp;&nbsp;&nbsp;&nbsp;Const PrpFail As Integer = 3270<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error GoTo Err_SetMyProperty<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Obj.Properties(strName) = strSetting<br/>&nbsp;&nbsp;&nbsp;&nbsp;Obj.Properties.Refresh<br/><br/>Exit_SetMyProperty:<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit Sub<br/><br/>Err_SetMyProperty:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err = PrpFail Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set Prp = Obj.Cr&#101;ateProperty(strName, intType, strSetting)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obj.Properties.Append Prp<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obj.Properties.Refresh<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox &#34;Error: &#34; &amp; Err &amp; vbCrLf &amp; Err.Description<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Resume Exit_SetMyProperty<br/><br/>End Sub<br/><br/> <br/><br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=124</link>
			<title><![CDATA[取ACCESS中的所有表名和字段名]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[其它技术]]></category>
			<pubDate>Sun,10 Dec 2006 10:50:24 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=124</guid>	
		<description><![CDATA[--列出所有的用户表<br/><br/>Sel&#101;ct *<br/>FROM MSysObjects<br/>Wh&#101;re Flags=0 AND Type=1<br/><br/>--下面代码列出指定表的所有字段和文本类型字段的长度<br/><br/>&#39;引用ADOX<br/>&#39;--&gt;VBA窗口“工具”菜单<br/>&#39;--&gt;引用<br/>&#39;--&gt;<a href="http://www.microsoft.com/china/homepage/ms.htm" target="_blank"><img src="http://www.edongcn.com/blog/images/keywords/microsoft.gif" border="0" alt=""/> Microsoft</a> ADO Ext. 2.X for DLL and Security<br/><br/>Public Sub list(strTblName As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim Cnn As New ADODB.Connection<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim Fld As New ADOX.Column<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim Cat As New ADOX.Catalog<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim Tbl As New ADOX.Table<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set Cnn = CurrentProject.Connection<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set Cat.ActiveConnection = Cnn<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set Tbl.ParentCatalog = Cat<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set Tbl = Cat.Tables(strTblName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print &#34;字段个数：&#34; &amp; Tbl.Columns.Count<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;For Each Fld In Tbl.Columns<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print &#34;字段名：&#34; &amp; Fld.Name &amp; &#34;,宽度：&#34; &amp; Fld.DefinedSize<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/><br/>End Sub<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=123</link>
			<title><![CDATA[日语最该掌握的句型840个(あ)]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[日语学习]]></category>
			<pubDate>Mon,04 Sep 2006 23:20:36 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=123</guid>	
		<description><![CDATA[１．あいかわらず～「相変わらず～」<br/>表示&#34;依然・・・・・・&#34;&#34;还是・・・・・・&#34;<br/>◆武さんは相変わらず忙しいですね。<br/>武还是很忙啊！<br/>◆相変わらず元気です。<br/>还是很健康<br/><br/>２．～あいだ「～間」<br/>接在活用词连体形，[名词の]后，表示“在···期间一直···”。后项谓语多用表示持续意义的形式。<br/>◆彼は会議の間ずっと居眠りをしていた。<br/>开会期间他一直在打瞌睡。<br/>◆授業の間、喋りをするな<br/>上课期间不许讲话。<br/><br/>３．～あいだに「～間に」<br/>接在活用词连体形，[名词の]后，表示“趁···的时候”。后项谓语多用非表示持续意义的形式。<br/>◆祖母が元気な間にいろいろ話を聞いておこう。<br/>趁着祖母还硬朗的时候，把这些事情都问清楚吧。<br/>◆東京にいる間に、一度歌舞伎を見に行きたいです。<br/>想趁着在东京去看一次歌舞伎。<br/><br/>４．あいてにする「相手にする」<br/>常用[～を相手にする]的形式表示“把···作为伙伴、对象”等。还经常用[相手にしない]的形式表示“不理睬···”。<br/>◆どうして相手にしてくれないか。<br/>为什么不理我？<br/>◆誰も彼を相手にしない。<br/>谁都不愿意理睬他。<br/>◆テニスの相手をしてくれるように兄を頼んだが、やりたくないと断られた。<br/>我叫哥哥和我一起去打网球，结果他不想找，拒绝了我。<br/><br/>５．～あう「～合う」<br/>接在动词连用形后，表示“相互···”“和···”。<br/>◆仕事のことで彼と話し合った。<br/>就工作问题和他谈了一下。<br/>◆友達だから、助け合うべきだ。<br/>因为是朋友所以应该互相帮助。<br/><br/>６．あえて～ない「敢えて～ない」<br/>表示“并不···”。<br/>◆そのやり方に敢えて反対はしないが、不満は残っている。<br/>我并不反对这种做法，但还是有意见。<br/>◆彼のデザインは完璧といっても、敢えて過言ではありません。<br/>他的设计，说是完美无缺也不为过。<br/><br/>７．あたかも～ようだ「みたいだ」<br/>意为“好像···”“宛如···”。<br/>◆その日はあたかも春のような陽気だった。<br/>那天就像春天一样阳光明媚。<br/>◆電気をつけると、あたかも昼のように明るい。<br/>打开灯，就像是白天一样明亮。<br/>◆彼女は人から聞いたことをあたかも自分自身の体験のように話す。<br/>她把从别人那里听来的事，说的就像是自己亲身经历的一样。<br/><br/>８．～あたり①「当たり」<br/>表示“每···”“平均···”。<br/>◆今日の食事代は、一人当たり３０００円です。<br/>今天的餐费每人3000日元。<br/>◆お米を３０キロ買っておいたから、一日あたり１キロです。<br/>买了30公斤大米，平均一天1公斤。<br/><br/>９．～あたり②「辺り」<br/>接在表示时间或地点的词后，表示“···一带”“···左右”。<br/>◆父は五時当たりに帰ってくるでしょう。<br/>父亲5点左右能回来吧。<br/>◆課長は、来週の日曜日辺りに出張します。<br/>课长下个星期的星期天左右出差。<br/>◆川中先生の家はこの辺りです。<br/>川中老师的家就在这附近。<br/><br/>１０．～あたりまえだ「当たり前だ」<br/>一般用[用言连体形のが当たり前だ]的形式，表示“理所当然···”“应该···”。<br/>◆借りたものは返すのが当たり前だ。<br/>借的东西当然要还。<br/>◆長男が両親の面倒を見るはが当たり前だと考えている人が多い。<br/>很多人认为应该由长男来照顾父母。<br/><br/>１１．～あっての<br/>接名词后，表示前项是后项的前提。意为“有···才有···”“没有···就没有···”。<br/>◆いい夫婦関係あっての家庭だね。夫婦関係がよくないと、幸せな家庭にはなれない。<br/>有良好的夫妻关系才会有家庭。如果夫妻关系不好，就不能建立幸福的家庭。<br/>◆お客さん合っての仕事だから、言葉遣いに気をつけてください。<br/>因为是面对客户的工作，所以特别要注意遣词用语。<br/>◆小さい進歩で努力あってのことです。小的进步也是努力的结果。（有努力才会有进步）<br/><br/>１２．あっちうまに～「あっという間に～」<br/>表示“一瞬间”“一眨眼功夫就···”。<br/>◆あっという間に、大勢の人が集まってきました。<br/>不一会儿就聚集了很多人。<br/>◆あっという間に、５年も過ぎました。<br/>眨眼时间就过去了5年。<br/>１３．～あて「～当て」<br/>接在数量词后，表示“每···”。<br/>◆りんごを一人当て１０個配る。<br/>每人分10个苹果。<br/>◆米は一人当て５キロの配給です。<br/>大米是每人5公斤的配给。<br/><br/>１４．～あてにする「当てにする」<br/>常用[～をあてにする]的形式，表示“指望···”“相信···”<br/>◆いつまでも親を当てにするな。<br/>不能总是指望父母。<br/>◆あいつを当てにするな。<br/>不要指望那个家伙。<br/><br/>１５．あてになる「当てになる」<br/>表示“···靠得住”“···可靠”。<br/>◆最近の天気予報はまったく当てにならない。<br/>最近的天气预报根本不可靠。<br/>◆あいつにそのことを頼んでも、当てにならない。<br/>即使把那件事拜托给他，也甭指望他能办成。<br/><br/>１６．あとは～ばかりだ「後は～ばかりだ」<br/>表示“只剩···”。<br/>◆パーティーの準備ができて、後は料理を並べるばかりです。<br/>晚会已经准备就绪，只剩摆放菜肴了。<br/>◆やられることはもう全部やった。後は待つばかりだ。<br/>能做的已经全都做了，剩下的只有等待了。<br/><br/>１７．あながち～ない「強ち～ない」<br/>表示“不见得···”“未必···”。<br/>◆強ち僕ばかりではない。<br/>未必只是我一个人。<br/>◆強ちそうとは限りません。<br/>不一定是那样。<br/><br/>１８．あまり～「余り～」<br/>副词，表示“很···”“非常···”。<br/>◆余り暑いから、上着を脱いだ。<br/>因为太热，所以脱掉了上衣。<br/>◆余り早いので、よく見えなかった。<br/>因为太快了，所以没看清楚。<br/><br/>１９．～あまり「～余り」<br/>接[名词の]、[形容动词词干さの]、形容词和动词连体形后面、表示“由于过度”。<br/>◆母は悲しみの余り、病気になってしまった。<br/>母亲因为悲伤过度而病倒。<br/>◆母は弟のことを心配する余り。病気になった。<br/>妈妈因为太担心弟弟，病倒了。<br/>◆子供を大事にする余り、過保護になる母親が少なくありません。<br/>太宝贝孩子而成了“过保护”的妈妈不在少数。<br/><br/>２０．あまり～すぎる「余り～過ぎる」<br/>用[余り动词连用形/形容词词干過ぎる]的形式，表示“太···”“过于···”。<br/>◆この本は余り難しすぎる。<br/>这本书太难了。<br/>◆余り働きすぎると過労死になる恐れがあります。<br/>太拼命工作，有可能导致过劳死。<br/><br/>２１．あまり～と、かえって～「余り～と、かえって～」<br/>表示“太···的话，反而···”。<br/>◆余りひどく叱ると、かえって子供によくない。<br/>过分严厉的批评反而对孩子不好。<br/>◆余り運動しすぎると、かえって体によくない。<br/>过分运动反而对身体不好。<br/><br/>２２．あまり～ない「余り～ない」<br/>表示“不太···”“不怎么···”。<br/>◆ご飯と味噌汁は、日本時の典型的な朝食ですが。若い人は余り食べていないようです。<br/>米饭和酱汤是日本队人典型的早饭，但是年轻人似乎都不太吃。<br/>◆私は渡辺先生をあまりよく知りません。<br/>我对渡边老师知道的不多。<br/>◆北京に余り詳しくありません。<br/>我对北京不怎么熟悉。<br/><br/>２３．あやうく～ところだった「危うく～ところだった」<br/>多用于书面语，表示“几乎···”“差一点···”。<br/>◆危うく車を並木にぶつけるところだった。<br/>差一点把车撞到了路边的树上。<br/>◆危うく死ぬところだった。<br/>险些丧命。<br/><br/>２４．あるいは～かもしれない「或いは～かもしれない」<br/>表示推量，意为“或者···吧”“也许···吧”。<br/>◆盗まれたと思ったけれど、或いはどこかに置忘れのかもしれません。<br/>觉得好像被偷了，但也可能是忘记放在哪里了。<br/>◆彼の言うことは或いは本当かもしれない。<br/>他说的也许是真的。<br/><br/>２５．あるいは～か「或いは～か」<br/>表示二者择一，意为“或者···”。<br/>◆帰りは汽車にするか、或いは飛行機にするか早く決めなければならない、<br/>回去时是坐火车还是坐飞机，必须快点决定。<br/>◆進学するか、或いは就職するか、真剣に考えなければなりません。<br/>是考学还是工作，必须要慎重考虑。]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=121</link>
			<title><![CDATA[我也用一下Lava-Lava.]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[心情日记]]></category>
			<pubDate>Thu,20 Jul 2006 21:38:51 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=121</guid>	
		<description><![CDATA[&nbsp;&nbsp; 其实在前些日子就看到它的新闻了，不过那时候没怎么注意，今天看IT新闻时，又看到了关于它的新闻[<a target="_blank" href="http://www.jfdaily.com/gb/node2/node142/node153/userobj&#101;ct1ai1406303.html">“酋长”王志东挑战QQ</a>]，比较好奇，就下载了看看，按它主页上写的功能描述主要有下面的一些特性：<br/>“关系万千重”的部落<br/> <br/>生活中的社交圈子一样可以在网络世界实现。在Lava-Lava的部落里，无论是志同道合的伙伴，还是臭味相投的损友，或者一起奋斗的同仁，甚至业务往来的客户都能够轻松交流。现在，不用灌水泡分熬资历，也不用挂网耗时挣积分，Lava-Lava的部落——人人有权建立，一切尽可分享。<br/> <br/> <br/> 超清晰语音通话 <br/>Lava-Lava提供5人语音视频功能，让你能随时邀请多个好友一起开心聊个够！周末安排一次出游？还是今晚去哪里FB？赶紧抓起耳麦，呼朋唤友，网上开个会！Lava-Lava还能让你同时召集4个好友视频聊天。不仅能与远在天涯海角的朋友们在网上开个面对面的视频Party，而且画面流畅、语音清晰，让你的沟通更加彻底。<br/> <br/> <br/> GID绑定e-mail<br/> <br/>不知道你的GID，朋友就找不到你？Lava-Lava提供GID与e-mail地址的捆绑功能。只要把常用的e-mail地址和你的GID绑定好。好朋友就可以通过e-mail地址找到你——少记一个号码，多了一种途径。 <br/> <br/> <br/> 心情互动 <br/>好友心情天天变，昨天耍酷，今天玩可爱，明天又装深沉，真想给她点评点评！Lava-Lava推出心情互动功能，您和好友能评论彼此的心情，让心情也互动起来！你还可以跟其他好友PK一把，看谁的评论最精彩！心情随时变，评论时刻动，Lava-Lava心情互动，让好心情随行你左右。 <br/> <br/> 好友不在线，文件照样传<br/> <br/>Lava-Lava将提供文件离线传输功能。当你兴冲冲传给好友一首好歌，对方却因为不在线无法接收。有了Lava-Lava文件离线传输功能，即使对方根本不在线，你也可以照样“想发就发”。 <br/> <br/> 强力黄页搜索 <br/>无论是公司还是网吧，无论是隔壁新来的同事还是旁边陌生的PLMM，全能信手联系到。Lava-Lava的“查找本地网络好友”功能。让你可以查找局域网内的所有Lava-Lava用户，“咫尺不再成为天涯”！<br/> <br/> <br/> 头像随手拍 <br/>浏览网页时看到喜欢的图片，不用下载也不用保存，一步操作就能将它设置为你的头像。Lava-Lava提供随手拍照功能：随手一拍，图片自动成为头像。任何图片，无论大小，只要你喜欢统统可以拿来做头像，还能添加多种特效。 <br/> <br/> 便捷的文件共享 <br/>自己有好东东，当然要和好友一起分享：用Email发给他们——附件太大被拒收；上载到网络硬盘——先得注册太麻烦；用通讯软件传输——挨个发送好辛苦。Lava-Lava的文件共享工具让你和朋友轻松分享任何资源。共享资源的访问权限、密码验证和人员设定在一个窗口里就能轻松搞定，简单的不得了。<br/><br/>&nbsp;&nbsp;不过我现在来说，还是喜欢它的自定标签。呵呵，看看下面的图，我把我的网站放到自定义标签里了： <br/><br/><img src="http://www.edongcn.com/blog/attachments/month_0607/u2006720213842.JPG" border="0" alt=""/><br/><br/><br/>如果有谁也用它的话,可以加我为好友.<br/>我的Lava号:2492266<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=119</link>
			<title><![CDATA[Swt常用控件中文教程]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[JAVA技术]]></category>
			<pubDate>Tue,04 Jul 2006 20:46:49 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=119</guid>	
		<description><![CDATA[1、Eclipse中swt的配置<br/>建议配置：jdk1.4.2以及eclipse3.1<br/>在代码中调用swt控件之前，首先建立一个项目，然后选择该项目的properties -&gt; Java Build Path，将standard Widget ToolKit加入到Library页当中。如下图所示：<br/>接下来可以建立第一个eclipse小程序，新建一个class，并且在该class所对应的代码中输入如下程序，其中package以及class名称根据实际情况来确定名称。<br/>package mypakage;<br/>import o&#114;g.eclipse.swt.widgets.*;<br/>import o&#114;g.eclipse.swt.*;<br/>/*导入需要的类库*/<br/>public class Myfrm1 {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public Myfrm1() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display display = new Display();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell shell = new Shell(display);<br/>/*shell为一个窗口对象*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label label = new Label(shell, SWT.NONE);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label.setText(&#34;Hello, World!&#34;);&nbsp;&nbsp;/*创建一个标签对象并且设置标题文字*/<br/>label.pack();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.pack();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open();&nbsp;&nbsp;/*打开并显示窗口*/<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!shell.isDisposed())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!display.readAndDispatch())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.sleep();&nbsp;&nbsp;/*在窗口没有销毁之前，显示对象一直处于等待状态*/<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.dispose();&nbsp;&nbsp;/*否则，销毁对象，释放对象所占据的资源*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label.dispose();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/>运行上述代码（run -&gt; debug -&gt; swt application）将产生如下所示的一个窗口 <br/><br/>2、button的使用<br/>按钮可能的类型有很多，例如：<br/>SWT.BORDER&nbsp;&nbsp;含有边框的按钮<br/><br/>SWT.CHECK&nbsp;&nbsp;复选按钮<br/><br/>SWT.PUSH&nbsp;&nbsp;普通按钮<br/><br/>SWT.RADIO&nbsp;&nbsp;单选按钮<br/><br/>3、Text的使用<br/>文本框的类型也有很多种选择，例如：<br/>SWT.BORDER 含有边框<br/><br/>SWT.READ_ONLY 只读<br/><br/>下图为包含按钮以及文本框的窗口<br/><br/><br/>设计上述窗口所对应的代码为：<br/>package mypakage;<br/>import o&#114;g.eclipse.swt.widgets.*;<br/>import o&#114;g.eclipse.swt.SWT;<br/>import o&#114;g.eclipse.swt.events.*;<br/>import o&#114;g.eclipse.swt.layout.*;<br/>public class Myfrm1 {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public Myfrm1() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display display = new Display( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell shell = new Shell(display);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setSize(300, 200);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setLayout(new RowLayout( ));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setText(&#34;Button Example&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final Button button = new Button(shell, SWT.BORDER);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;button.setText(&#34;Click Me&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final Text text = new Text(shell, SWT.BORDER);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open( );<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!shell.isDisposed( )) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!display.readAndDispatch( )) display.sleep( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.dispose( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/>如果想对控件的位置以及大小进行精确的设置，可以使用setBounds(x, y, width, height)方法来取代shell.setLayout(new RowLayout( ))。例如：button.setBounds(80, 80, 90, 20);<br/><br/>button的监听及事件处理<br/>对按钮单击事件处理的代码：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;button.addSel&#101;ctionListener(new Sel&#101;ctionListener( )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void widgetSel&#101;cted(Sel&#101;ctionEvent event)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.setText(&#34;No worries!&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void widgetDefaultSel&#101;cted(Sel&#101;ctionEvent event)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.setText(&#34;No worries!&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br/><br/>将以上代码加入到shell.open之前，当点击按钮时产生以下效果：<br/><br/><br/>分析：由于为button按钮增加了一个监听器，按钮时刻处于被“监控”的状态，当按钮控件被选择（点击）既选择事件发生时，对文本控件进行赋值”No worries”。<br/><br/>根据监听事件的原理，设计如下程序，该程序能够获得鼠标的X坐标，显示在文本框中：<br/><br/>package mypakage;<br/>import o&#114;g.eclipse.swt.widgets.*;<br/>import o&#114;g.eclipse.swt.SWT;<br/>import o&#114;g.eclipse.swt.events.*;<br/>import o&#114;g.eclipse.swt.layout.*;<br/><br/>public class Myfrm1 {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public Myfrm1() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display display = new Display( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell shell = new Shell(display);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setSize(300, 200);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setLayout(new RowLayout( ));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final Text text = new Text(shell, SWT.SHADOW_IN);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.addMouseMoveListener(new MouseMoveListener( )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void mouseMove(MouseEvent e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer y=new Integer(e.x);&nbsp;&nbsp;/*将x坐标转换为Integer类型的对象*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.setText(y.toString()); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!shell.isDisposed( )) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!display.readAndDispatch( )) display.sleep( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.dispose( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/>监听方式：<br/>ControlListener 用于处理移动以及尺寸变化<br/><br/>FocusListener 用于处理得到焦点以及失去焦点<br/><br/>KeyListener 处理按键的输入<br/><br/>MouseListener , MouseMoveListener, MouseTrackListener 对鼠标的动作进行处理<br/><br/>Sel&#101;ctionListener 处理控件的选择行为（包括按钮的点击）<br/><br/>注意：监听方式与其所能够处理的事件具有一定的关联性，既监听方式决定了所能够处理事件的种类，例如：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.addMouseListener(new MouseListener( )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void mouseMove(MouseEvent e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {text.setText(&#34;mousemove&#34;);}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void mouseDoubleClick(MouseEvent e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {text.setText(&#34;mousedbclc&#34;);}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void mouseDown(MouseEvent e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void mouseUp(MouseEvent e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br/><br/>你会发现在鼠标移动时，text.setText(&#34;mousemove&#34;);始终不能够执行；并且mouseDown、mouseUp事件不能够省略，原因就在于MouseListener只能处理mouseDoubleClick、mouseDown、mouseUp三类事件，而且这三类事件不能够分离。<br/><br/>3、List控件<br/>List控件的样式包括：<br/>SWT.BORDER 含有边框<br/><br/>SWT.H_SCROLL 含有水平滚动条<br/><br/>SWT.V_SCROLL 含有垂直滚动条<br/><br/>SWT.SINGLE 允许单选<br/><br/>SWT.MULTI 允许复选<br/><br/>若要创建一个含有从11个元素的List，可以通过以下代码来实现<br/>final List list = new List (shell, SWT.SINGLE);<br/>for (int i=0;i&lt;=10;i++)<br/>&nbsp;&nbsp; list.add(&#34;item&#34;+i);<br/><br/><br/><br/>以下实例能够判断List控件中所选择的选项，并且输出显示在控制台中：<br/>package mypakage;<br/>import o&#114;g.eclipse.swt.widgets.*;<br/>import o&#114;g.eclipse.swt.SWT;<br/>import o&#114;g.eclipse.swt.events.*;<br/>import o&#114;g.eclipse.swt.layout.*;<br/>public class Myfrm1 {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public Myfrm1() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display display = new Display ( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell shell = new Shell (display);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setText(&#34;List Example&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setSize(300, 200);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setLayout(new FillLayout(SWT.VERTICAL));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final List list = new List (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int loopIndex = 0; loopIndex &lt; 100; loopIndex++){ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(&#34;Item &#34; + loopIndex);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.addSel&#101;ctionListener(new Sel&#101;ctionListener( )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void widgetSel&#101;cted(Sel&#101;ctionEvent event)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;sel&#101;ctions[] = list.getSel&#101;ctionIndices ( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String outText = &#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int loopIndex = 0; loopIndex &lt; sel&#101;ctions.length; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loopIndex++) outText += sel&#101;ctions[loopIndex] + &#34; &#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println (&#34;You sel&#101;cted: &#34; + outText);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void widgetDefaultSel&#101;cted(Sel&#101;ctionEvent event)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int [] sel&#101;ctions = list.getSel&#101;ctionIndices ( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String outText = &#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int loopIndex = 0; loopIndex &lt; sel&#101;ctions.length; loopIndex++) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outText += sel&#101;ctions[loopIndex] + &#34; &#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println (&#34;You sel&#101;cted: &#34; + outText);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open ( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (!shell.isDisposed ( )) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!display.readAndDispatch ( )) display.sleep ( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.dispose ( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/>效果图：<br/><br/><br/>You sel&#101;cted: 4 5 6 7 8 9 10<br/>分析：list.getSel&#101;ctionIndices ( )方法将会获得被选择项目的集合， sel&#101;ctions[]或者[] elections表示动态一维数组。<br/><br/>4、Menu控件<br/>建立菜单的一般步骤为：<br/>1、在建立菜单时，首先需要建立一个菜单栏，需要使用SWT.BAR属性<br/>Menu menuBar = new Menu(shell, SWT.BAR);<br/><br/>2、在菜单栏的基础之上，创建下拉菜单的所对应的顶级菜单项，需要使用SWT.CASCADE属性<br/>fileMenuHeader = new MenuItem(menuBar, SWT.CASCADE);<br/>fileMenuHeader.setText(&#34;&amp;File&#34;);<br/><br/>3、建立与顶级菜单项相关的下拉式菜单<br/>dro&#112;Menu1 = new Menu(shell, SWT.Dro&#112;_DOWN);<br/><br/>4、将顶级菜单项与下拉菜单关联<br/>MenuHeader1.setMenu(dro&#112;Menu1);<br/><br/>5、为下拉菜单添加子菜单项<br/>dro&#112;item1= new MenuItem(dro&#112;Menu1, SWT.PUSH);<br/>dro&#112;item1.setText(&#34;open&#34;);<br/>…<br/>…<br/><br/>6、最后，在窗口中指定需要显示的菜单栏<br/>shell.setMenuBar(menuBar);<br/><br/><br/><br/>菜单的监听及事件<br/>参照按钮的监听以及事件，设计如下程序，当点击 File子菜单下的“open”时，在文本框中显示“click open menu!”<br/>dro&#112;item1.addSel&#101;ctionListener(new Sel&#101;ctionListener()<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void widgetSel&#101;cted(Sel&#101;ctionEvent event)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text.setText(&#34;click open menu!&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void widgetDefaultSel&#101;cted(Sel&#101;ctionEvent event)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text.setText(&#34;click open menu!&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp; });<br/><br/><br/>5、使用工具栏toobar<br/>建立工具栏可以通过如下方式：ToolBar toolbar = new ToolBar(shell, SWT.NONE);<br/>在工具栏的基础之上创建工具栏子按钮，并且设置子按钮的标题：<br/><br/>ToolItem item1 = new ToolItem(toolbar, SWT.PUSH);<br/>item1.setText(&#34;item1&#34;);<br/><br/>例如：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ToolBar toolbar = new ToolBar(shell, SWT.NONE);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ToolItem item1 = new ToolItem(toolbar, SWT.PUSH);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item1.setText(&#34;item1&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ToolItem item2 = new ToolItem(toolbar, SWT.PUSH);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item2.setText(&#34;item2&#34;);<br/><br/><br/><br/>工具栏的监听及事件<br/>实例：创建一个监听对象，将该监听对象应用于每一个按钮，最终来判断鼠标点击的是哪一个按钮，效果图如下。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Listener listener = new Listener( ) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void handleEvent(Event event) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ToolItem item =(ToolItem)event.widget;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String string = item.getText( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text.setText(&#34;You sel&#101;cted:&#34; + string);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item1.addListener(SWT.Sel&#101;ction, listener);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item2.addListener(SWT.Sel&#101;ction, listener);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item3.addListener(SWT.Sel&#101;ction, listener);<br/>item4.addListener(SWT.Sel&#101;ction, listener);<br/><br/><br/><br/>6、滚动条slider的使用<br/>滚动条分为有边框、垂直、水平三种类型，利用slider.setBounds方法可以指定滚动条所在的位置。<br/>滚动条所能够处理事件的包括：<br/>SWT.ARROW_DOWN 向下或向右按钮被点击<br/><br/>SWT.ARROW_UP 向左或向上按钮被点击<br/><br/>SWT.DRAG&nbsp;&nbsp;滑块按钮被托动<br/><br/>SWT.END 滑块到达终点<br/><br/>SWT.HOME 滑块到达起点<br/><br/>SWT.PAGE_DOWN 下方或右侧的滚动条被点击<br/><br/>SWT.PAGE_UP 上方或左侧的滚动条被点击<br/>实例：根据滑块的位置移动按钮位置<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slider.addListener(SWT.Sel&#101;ction, new Listener( ) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void handleEvent(Event event) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(event.detail) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case SWT.ARROW_DOWN: button.setBounds(slider.getSel&#101;ction(),0,20,10); <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case SWT.ARROW_UP:button.setBounds(slider.getSel&#101;ction(),0,20,10); <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case SWT.DRAG:button.setBounds(slider.getSel&#101;ction(),0,20,10); <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case SWT.END:button.setBounds(slider.getSel&#101;ction(),0,20,10); <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case SWT.HOME:button.setBounds(slider.getSel&#101;ction(),0,20,10); <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case SWT.PAGE_DOWN:button.setBounds(slider.getSel&#101;ction(),0,20,10); <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case SWT.PAGE_UP:button.setBounds(slider.getSel&#101;ction(),0,20,10); <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>});<br/><br/><br/><br/><br/>7、树形控件Tree <br/>树形控件使用的方法为，首先创建一个Tree类型的对象，其次在该对象的基础之上继续扩展节点，以及扩展节点的子节点。<br/>final Tree&nbsp;&nbsp;tree = new Tree(shell, SWT.BORDER);<br/>可以利用tree.setSize方法来改变树形控件的大小。在创建节点时，需要指明该节点所依赖的父节点的名称，如TreeItem item0 = new TreeItem(tree, 0);，那么item0将成为tree对象中的0级（顶级）节点。<br/>如下程序将在tree对象的基础之上产生9个节点：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final Tree tree = new Tree(shell, SWT.BORDER);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.setSize(290, 290);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int loopIndex1 = 2000; loopIndex1 &lt;= 2008; loopIndex1++) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TreeItem item0 = new TreeItem(tree, 0);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item0.setText(&#34;Year &#34; + loopIndex1);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>在上述实例的基础上为每一个0级节点的基础上扩展出12个节点：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int loopIndex1 = 2000; loopIndex1 &lt;= 2008; loopIndex1++) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TreeItem item0 = new TreeItem(tree, 0);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item0.setText(&#34;Year &#34; + loopIndex1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int loopIndex2 = 1; loopIndex2 &lt;= 12; loopIndex2++) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TreeItem item1 = new TreeItem(item0, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item1.setText(&#34;Month &#34; + loopIndex2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>8、对话框dialog<br/>对话框是一个依托于主窗体的子窗体，如图所示。<br/><br/>例如：当在主窗体中点击按钮时，弹出一个对话框dialog，当关闭对话框时按钮显示“dialog is disposed”<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display display = new Display( );<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final Shell shell = new Shell(display);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setSize(300, 200);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setText(&#34;main&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final Button opener = new Button(shell, SWT.PUSH);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opener.setText(&#34;Click Me&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opener.setBounds(20, 20, 50, 25);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final Shell dialog = new Shell(shell, SWT.APPLICATION_MODAL |<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SWT.DIALOG_TRIM);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dialog.setText(&#34;dialog&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dialog.setBounds(10,10,50,60);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dialog.addDisposeListener(new DisposeListener(){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void widgetDisposed(DisposeEvent e){<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opener.setText(&#34;dialog is disposed&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Listener openerListener = new Listener( ) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void handleEvent(Event event) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dialog.open( );<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opener.addListener(SWT.Sel&#101;ction, openerListener);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open( );<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!dialog.isDisposed( )) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!display.readAndDispatch( )) display.sleep( );<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (!shell.isDisposed( )) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!display.readAndDispatch( ))<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.sleep( );<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.dispose( );<br/><br/><br/>此帖转自Matrix]]></description>
		</item>
		
			<item>
			<link>http://www.edongcn.com/blog/default.asp?id=112</link>
			<title><![CDATA[Java异常框架设计]]></title>
			<author>webmaster@edongcn.com(E动中国)</author>
			<category><![CDATA[JAVA技术]]></category>
			<pubDate>Sun,30 Apr 2006 19:02:37 +0800</pubDate>
			<guid>http://www.edongcn.com/blog/default.asp?id=112</guid>	
		<description><![CDATA[概念<br/><br/>什么是异常？<br/><br/>异常（exception）应该是异常事件（exceptional event）的缩写。<br/>异常定义：异常是一个在程序执行期间发生的事件，它中断正在执行的程序的正常的指令流。<br/>当在一个方法中发生错误的时候，这个方法创建一个对象，并且把它传递给运行时系统。这个对象被叫做异常对象，它包含了有关错误的信息，这些信息包括错误的类型和在程序发生错误时的状态。创建一个错误对象并把它传递给运行时系统被叫做抛出异常。<br/>一个方法抛出异常后，运行时系统就会试着查找一些方法来处理它。这些处理异常的可能的方法的集合是被整理在一起的方法列表，这些方法能够被发生错误的方法调用。这个方法列表被叫做堆栈调用（call　stack）<br/><br/>运行时系统搜寻包含能够处理异常的代码块的方法所请求的堆栈。这个代码块叫做异常处理器，搜寻首先从发生的方法开始，然后依次按着调用方法的倒序检索调用堆栈。当找到一个相应的处理器时，运行时系统就把异常传递给这个处理器。一个异常处理器要适当地考滤抛出的异常对象的类型和异常处理器所处理的异常的类型是否匹配。异常被捕获以后，异常处理器关闭。如果运行时系统搜寻了这个方法的所有的调用堆栈，而没有找到相应的异常处理器。<br/><br/><br/><br/>怎么设计异常框架<br/><br/>任何的异常都是Throwable类（为何不是接口？？），并且在它之下包含两个字类Error / Exception，而Error仅在当在Java虚拟机中发生动态连接失败或其它的定位失败的时候，Java虚拟机抛出一个Error对象。典型的简易程序不捕获或抛出Errors对象，你可能永远不会遇到需要实例化Error的应用，那就让我们关心一下Exception<br/><br/>Exception中比较重要的就是RuntimeException－运行时异常（当然这个名字是存在争议的，因为任何的异常都只会发生在运行时），为什么说这个类时很重要的呢？因为它直接关系到你的异常框架的设计，仔细看RuntimeException<br/><br/>A method is not required to declare in its throws clause any subclasses of RuntimeException that might be thrown during the execution of the method but not caught.<br/><br/>－可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。 <br/><br/>也就是说你的应用应该不去“关心”（说不关心是不服责任的，但只是你不应该试图实例化它的字类）RuntimeException，就如同你不应该关心Error的产生与处理一样！RuntimeException描述的是程序的错误引起来的，因该由程序负担这个责任！（&lt;B&gt;从责任这个角度看Error属于JVM需要负担的责任;RuntimeException是程序应该负担的责任;checked exception 是具体应用负担的责任&lt;/B&gt;）<br/><br/>那就有人会问，那我该关心什么！答案就是除了Error与RuntimeException，其他剩下的异常都是你需要关心的，而这些异常类统称为Checked Exception,至于Error与RuntimeException则被统称为Unchecked Exception.<br/><br/><br/>异常的概念就这些了，即使你在网络上搜索也就不过如此，是不是感觉到有点清晰又有点模糊？那么怎么该如何在这样单薄而模糊的概念下设计J2EE的异常框架呢？<br/><br/><br/>解决方案：J2EE异常框架<br/><br/>我们拿一个模拟的例子来说明异常框架的设计过程，比如我们要对外提供doBusiness()这个业务方法<br/><br/>public void doBusiness() throws xxxBusinessException<br/><br/>当客户端调用这样的方法的时候应该这样处理异常（包括处理RuntimeException , checked exception）<br/>&lt;B&gt;记住，无论如何我们都不希望或者确切的说是不应该将RuntimeException这样的异常暴露给客户的，因为他们没有解决这个问题的责任！&lt;/B&gt;<br/>我们暂时将Struts中的某个Action看作时客户端，其中doExecute(....)要调用doBusiness()这个方法<br/><br/>public void doAction(......)<br/>{<br/>try<br/>{<br/><br/>&nbsp;&nbsp;xxx.doBusiness();<br/>}<br/>catch(Exception e)<br/>{<br/>&nbsp;&nbsp; if(e instanceof RuntimeException)&nbsp;&nbsp;<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;// catch runtime exception<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 你可以在这里将捕获到的RuntimeException<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 将异常通知给某个负责此程序的程序员，让他知道他<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 自己犯了多么低级的错误！<br/><br/><br/>&nbsp;&nbsp; }else<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;//checked exception such as xxxBusinessException<br/>&nbsp;&nbsp;&nbsp;&nbsp;//将这样的异常暴露给客户显示&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp; }<br/><br/>}<br/>}<br/><br/>我们可以这样设计xxxBusinessException<br/><br/>public class xxxBusinessException extends ApplicationException <br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;public xxxBusinessException(String s){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(s);<br/><br/>};<br/><br/>import java.io.PrintStream;<br/>import java.io.PrintWriter;<br/>public class ApplicationException extends Exception {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** A wrapped Throwable */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected Throwable cause;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ApplicationException() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super(&#34;Error occurred in application.&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ApplicationException(String message)&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super(message);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ApplicationException(String message, Throwable cause)&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super(message);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.cause = cause;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Cr&#101;ated to match the JDK 1.4 Throwable method.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Throwable initCause(Throwable cause)&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.cause = cause;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cause;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String getMessage() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get this exception&#39;s message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String msg = super.getMessage();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Throwable parent = this;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Throwable child;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Look for nested exceptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while((child = getNestedException(parent)) != null) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get the child&#39;s message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String msg2 = child.getMessage();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // If we found a message for the child exception, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // we append it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (msg2 != null) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (msg != null) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg += &#34;: &#34; + msg2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg = msg2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Any nested ApplicationException will append its own<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // children, so we need to break out of here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (child instanceof ApplicationException) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parent = child;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Return the completed message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return msg;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void printStackTrace() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Print the stack trace for this exception.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.printStack