选择java随机数

java随机数  时间:2021-02-25  阅读:()

第1章Eclipse基础应用实例Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的企业开发提供一个全功能的具有商业品质的工业平台.
它最初由IBM公司贡献,IBM公司提供了Eclipse代码基础.
目前,由IBM牵头,Eclipse项目已经发展成为一个庞大的联盟,有150多家软件公司参与到Eclipse项目中.
其中包括Borland、RationalSoftware、RedHat及Sybase.
最近Oracle也计划加入到Eclipse联盟中.

就其本身而言,Eclipse只是一个框架和一组服务,用于通过插件组件构建开发环境.
Eclipse拥有一个标准的插件集,核心插件是Platform、JDT和PDE.
Platform是Eclipse的核心运行平台,截至本书写作时的最新版为3.
1.
1;JDT是Java开发工具;PDE是插件设计环境,用于设计自定义插件.
正是这种基于插件的设计和开发方式,Eclipse受到了越来越多的开发者的欢迎.

1.
1下载并安装EclipseEclipse是开放源代码的项目,可以免费下载.
它的官方网站的网址是http://www.
eclipse.
org.
官方网站提供Releases、StableBuilds、IntegrationBuilds和NightlyBuilds的下载.
建议使用Releases或StableBuilds版本.
Releases版本是Eclipses开发团队发布的主要发行版本,是经过测试的稳定版本,适合要求稳定而不需要最新改进功能的使用者选择.
目前最新的Releases版本是Eclipse3.
2.
StableBuilds版本是对大多数使用者足够稳定的版本,由开发团队将认为比较稳定的IntegrationBuilds版本提升到StableBuilds而来,适合想使用Eclipse新功能的使用者选择.
跟我做1.
安装JDK1.
5Eclipse是一个基于Java平台的开发环境,它本身也要运行在Java虚拟机上,还要使用JDK的编译器,因此必须首先安装JDK.
(1)登录SUN的官方站点http://java.
sun.
com,下载JDK1.
5Windows版.
(2)安装JDK1.
5,可自行设定安装目录,如E:\jdk15.
(3)设置系统变量CLASSPATH.
右击【我的电脑】,依次选择【属性】|【高级】|【环境变量】命令,弹出【环境变量】对话框,如图1-1所示.
图1-1【环境变量】对话框(4)在【系统变量】中,单击【新建】按钮,弹出【新建系统变量】对话框,如图1-2所示.
图1-2新建系统变量(5)新建系统变量.
在【变量名】文本框中输入"JAVA_HOME",在【变量值】文本框中输入JDK安装路径,如"E:\jdk15",单击【确定】按钮.
然后创建"CLASSPATH"系统变量,变量值为".
;E:\jre15\lib\rt.
jar".

(6)编辑"Path"系统变量.
在【环境变量】对话框中选中"Path"系统变量,单击【编辑】按钮,弹出【编辑系统变量】对话框,在【变量值】文本框的最后加入"%JAVA_HOME%\bin".
2.
安装Eclipse3.
1.
1(1)登录Eclipse的官方站点http://www.
eclipse.
org,下载Eclipse安装包eclipse-SDK-3.
1.
1-win32.
zip.
(2)将ZIP文件解压至自行设定的安装目录,如E:\eclipse,Eclipse即安装完毕.
(注意:本书中Eclipse安装目录均用%Eclipse%代替.
1.
2安装语言包Eclipse提供了一个语言包的插件,用于国际化其开发环境.
对于英文不好的读者或者初学者来说,中文版本的Eclipse可以显著提高学习效率,便于接受和使用Eclipse.
在对Eclipse有了初步的认识之后,还是建议读者多使用英文版Eclipse,这样对以后的进一步学习和使用有好处.

跟我做(1)下载语言包插件.
登录Eclipse语言包下载网站,网址是http://download.
eclipse.
org/eclipse/downloads/drops/L-3.
1.
1_Language_Packs-200510051300/index.
php.
选择SDKLanguagePacks中的NLpack1,下载NLpack1-eclipse-SDK-3.
1.
1a-win32.
zip.
(2)将ZIP文件解压至Eclipse安装路径,即可完成语言包的安装.
(注意:如果Eclipse环境不能完全汉化,可将%Eclipse%\configuration\org.
eclipse.
update文件夹删除,重新启动Eclipse即可.
如果想恢复英文环境,可增加-NLen_US启动参数.
1.
3第一个Java实例这是一个简单的Java程序,从命令行输入两个字符串参数,在程序中将其合并成一个字符串,并在控制台输出.
本实例的目的是为了熟悉Eclipse环境,掌握编写Java程序的流程,掌握设置命令行参数的方法,以及如何在Eclipse中运行Java程序.

1.
3.
1新建Java项目(1)启动Eclipse.
右击%Eclipse%\eclipse.
exe,依次选择【发送到】|【桌面快捷方式】命令.
(2)双击桌面上的Eclipse快捷方式,启动Eclipse.
如Eclipse启动不成功,可增加虚拟机参数-vm%JAVA_HOME%\jre\bin\javaw.
exe.
(3)单击【窗口】菜单,依次选择【打开透视图】|【Java】命令,打开Java透视图.
(4)单击【文件】菜单,依次选择【新建】|【项目】命令,弹出【新建项目】对话框.
(5)选择【Java项目】,单击【下一步】按钮.
(6)在【项目名】文本框中输入"JavaApplication",其他选项保持默认值,单击【完成】按钮.
1.
3.
2配置构建路径为了让Java源文件和编译后生成的字节码文件分开存放,需要配置构建路径.
(1)选择【窗口】|【首选项】命令,弹出【首选项】对话框.
(2)依次选择左侧列表的【Java】|【构建路径】,选中窗口中的文件夹选项,单击【确定】按钮,保存设置,如图1-3所示.
图1-3配置构建路径1.
3.
3新建Java类(1)右击"src"文件夹,依次选择【新建】|【包】命令,弹出【新建Java包】对话框.
在【名称】文本框中输入"net.
chapter1",单击【完成】按钮.
(2)右击"net.
chapter1"包,依次选择【新建】|【类】命令,弹出【新建Java类】对话框.
在【名称】文本框中输入"StringJoin",单击【完成】按钮.
(3)编写程序代码.
如下:packagenet.
chapter1;publicclassStringJoin{publicstaticvoidmain(String[]args){//对输入的命令行参数进行判断,如果为空指针或者参数的数量不是2个,则输出提示信息后返回if(args==null||args.
length!
=2){System.
out.
println("请输入两个字符串参数!
");return;}//在控制台打印输入的参数System.
out.
println("您输入的字符串分别是:'"+args[0]+"'和'"+args[1]//将两个字符串进行连接StringjoinedString=args[0]+args[1];//在控制台打印连接后的字符串System.
out.
println("连接后的字符串是:"+joinedString);}}1.
3.
4设置命令行参数(1)右击"StringJoin.
java"文件,依次选择【运行方式】|【运行…】命令,弹出【运行】对话框.
(2)在左侧【配置】列表中选择【Java应用程序】,单击【新建】按钮,生成"StringJoin"项.
(3)选择右侧的【自变量】选项卡,在【程序自变量】文本框中输入命令行参数"hello"和"java",如图1-4所示.
图1-4设置命令行参数1.
3.
5运行实例在图1-4中,单击【运行】按钮运行Java程序.
输出结果如图1-5所示.
图1-5第一个Java程序运行结果1.
4Java应用程序实例本节将通过3个更详细的Java应用实例,进一步加深对Eclipse编程方式的理解.
选择的题材包括排序算法、数字游戏、使用Java实现FTP功能.
1.
4.
1排序算法的Java实现排序问题应该是数据结构中的经典问题.
前人总结出了多种排序算法,不同的算法都可以通过不同的语言描述实现.
本实例将实现冒泡排序、插入排序、选择排序的Java版.
实例运行后,控制台输出如图1-6所示.

图1-63种排序的输出3种排序结果一致,用时极短,均为0.
跟我做(1)右击1.
3节创建的"net.
chapter1"包,依次选择【新建】|【类】命令,弹出【新建Java类】对话框.
在【名称】文本框中输入"SortAlgorithm",单击【完成】按钮.

(2)编写程序代码.
冒泡排序基本算法思想:从前到后扫描序列,比较相邻两个项目的大小,若发现逆序进行交换,最后使最大者换到序列的最后.
然后再从后到前扫描剩下的序列,比较相邻两个项目的大小,若发现逆序则进行交换,最后使最小者换到序列的最前面.
对剩下的序列重复上述过程,直到剩下的序列为空时止.
bubbleSort方法实现了冒泡排序.
如下:publicclassSortAlgorithm{privatevoidbubbleSort(int[]numlist){intout,in;//从后到前,从倒数第二项到第二项扫描数列for(out=numlist.
length-1;out>1;out--)//从第一项到第out项扫描数列for(in=0;innumlist[in+1]){inttemp=numlist[in];numlist[in]=numlist[in+1];numlist[in+1]=temp;}}插入排序基本算法思想:每次将一个待排序的数据元素插入到前面已经排好序的数列中的适当位置,使数列依然有序,直到待排序数据元素全部插入完为止.
insertSort方法实现了插入排序.
如下:privatevoidinsertSort(int[]numlist){intin,out;//从out处分开数列for(out=1;out0&&numlist[in-1]>=temp)当发现数列值大于待排序的数据时{numlist[in]=numlist[in-1];//数列向右移一位--in;//指针向左移一位}numlist[in]=temp;//插入待排序的数据}}选择排序基本算法思想:首先找出最小的元素,然后把这个元素与第一个元素互换,这样值最小的元素就放到了第一个位置.
接着,再从剩下的元素中找值最小的,把它和第二个元素互换,使得第二小的元素放在第二个位置上,依此类推,直到所有的值由小到大排列为止.
selectionSort方法实现了选择排序.
如下:privatevoidselectionSort(int[]numlist){intout,in,min;//从第一项到倒数第二项扫描数列for(out=0;out100){System.
out.
println("请输入一个0~100之间的整数:");counter++;//游戏者猜测的次数加一continue;}}catch(NumberFormatExceptione){//如果游戏者输入的不是一个合法的整数,则让他重新输入System.
out.
println("请输入一个0~100之间的整数:");counter++;//游戏者猜测的次数加一continue;}catch(IOExceptione){System.
out.
println("程序发生异常错误将被关闭!
");e.
printStackTrace();}//对玩家的输入进行判断if(guessedNumber>randomNumber)System.
out.
println("您输入的数字大了,请再次输入:");if(guessedNumberout.
println("您输入的数字小了,请再次输入:");counter++;//游戏者猜测的次数加一}System.
out.
println("答案正确.
您共猜测"+counter+"次.
");}}(3)运行实例.
右击"GuessNumber.
java"文件,依次选择【运行方式】|【Java应用程序】命令.
1.
4.
3通过FTP传递文件本实例是一个使用Java实现FTP命令的程序,可从远程FTP服务器下载文件.
程序中用到了Apache的CommonsNet技术.
它是一个用于操作Internet基础协议(Finger,Whois,TFTP,Telnet,POP3,FTP,NNTP以及SMTP)的底层API.
CommonsNet包不仅支持对各种低层次协议的访问,而且还提供了一个高层的抽象,使得开发者不再需要直接面对各种协议的Socket级的低层命令.
本例只使用其FTP协议.
跟我做(1)下载CommonsNet包.
可到Apache网站下载最新的commons-net-1.
4.
1.
jar,网址为http://jakarta.
apache.
org/site/downloads/downloads_commons-net.
cgi.

(2)右击"JavaApplication"项目,依次选择【新建】|【文件夹】命令,弹出【新建文件夹】对话框.
在【文件夹名称】文本框中输入"lib",单击【完成】按钮.
将commons-net-1.
4.
1.
jar复制到lib文件夹中.

(3)右击"JavaApplication"项目,选择【属性】命令,弹出【JavaApplication的属性】对话框.
选择【库】选项卡,单击【添加Jar】按钮,弹出【选择JAR】对话框,如图1-8所示.
选中"commons-net-1.
4.
1.
jar",单击【确定】按钮.
返回【JavaApplication的属性】对话框,单击【确定】按钮.

图1-8【选择JAR】对话框(4)右击"net.
chapter1"包,依次选择【新建】|【类】命令,弹出【新建Java类】对话框.
在【名称】文本框中输入"FTPUtil",单击【完成】按钮.
(5)编写程序代码.
如下:publicclassFTPUtil{publicstaticvoidmain(String[]args){//通过FTPClient的对象模拟用户访问FTP服务器FTPClientftpClient=newFTPClient();StringftpServer="101.
10.
10.
24";//FTP服务器StringremoteFile="/opt/user/readme.
txt";//远程文件,复制的目标StringlocalFile="E:\\temp\\readme.
txt";//本地文件,复制的目的文件Stringuser="abc"用户名Stringpassword="edf"密码try{ftpClient.
connect(ftpServer);//连接FTP服务器System.
out.
println("Connectedto"+ftpServer+".
");intreply=ftpClient.
getReplyCode();//得到回复码//如果未能正常连接,退出程序if(!
FTPReply.
isPositiveCompletion(reply)){System.
out.
println("FTPserverrefusedconnection!
!
");System.
exit(1);}//通过用户名和密码登录FTP服务器,如果登录不成功,退出程序if(!
ftpClient.
login(user,password)){ftpClient.
logout();System.
out.
println("Ican'tlogin!
!
");System.
exit(1);}//定义文件输出流,FTPClient将把远程文件以流的方式输出,并写到本地文件OutputStreamoutput=newFileOutputStream(localFile);ftpClient.
retrieveFile(remoteFile,output);//如果传输成功,返回trueoutput.
close();//关闭流ftpClient.
logout();//推出登录}catch(IOExceptione){System.
err.
println(e);}finally{//断开FTP连接if(ftpClient.
isConnected()){try{ftpClient.
disconnect();}catch(IOExceptionf){System.
err.
println(e);}}}}}(6)运行程序.
右击"FTPUtil.
java"文件,依次选择【运行方式】|【Java应用程序】命令.
如果程序运行成功,将会把FTP服务器的/opt/user/目录下的readme.
txt文件复制到本地E:\temp目录下.

1.
5SWT界面开发实例SWT(StandardWidgetToolkit,标准窗口小部件工具包)本身仅仅是Eclipse组织为了开发EclipseIDE环境所编写的一组底层图形界面API.
或是无心插柳,或是有意为之,至今为止,SWT在性能和外观上都超越了SUN公司提供的AWT和SWING.
SWT已经十分稳定,它最大化了操作系统的图形构件API.
也就是说,只要操作系统提供了相应图形的构件,SWT就可以应用JNI技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的实现.

1.
5.
1使用Shell创建窗口本小节将创建第一个SWT程序(注意,本章的例子主要针对Windows平台,其他操作系统大同小异).
本实例是一个简单的窗口,在窗口中间显示"你好,SWT!
"字样.
通过学习和运行本实例,读者将掌握配置SWTAPI,编写和运行SWT程序的方法.
Display负责监管GUI的资源并管理和操作系统的通信,它不仅要关注窗口是如何显示、移动和重画的,还要确保诸如鼠标点击、键盘敲击等事件送达小部件并去处理它们.
Display类不是可见的.

Shell类扮演着GUI主窗口的角色.
一个Shell实例是一个可视化的应用,对主窗口的打开、激活、最大化、最小化和关闭保持追踪.
Shell类的主函数为整合在GUI内的容器、小部件和事件提供了一个通用的接入点.
从这一点讲,Shell的作用像是这些组件的父类.
本例的运行效果是一个简单的SWT窗口,如图1-9所示.

跟我做本实例主要包括3部分,下面依次进行讲解.
1.
新建SWT项目(1)单击【文件】菜单,依次选择【新建】|【项目】命令,弹出【新建项目】对话框.
(2)选择【Java项目】,单击【下一步】按钮.
(3)在【项目名】文本框中输入"SWT",其他选项保持默认值,单击【完成】按钮.
2.
引入SWT包要编写SWT程序,需要引入SWT的jar包.
Eclipse组织并不提供单独的SWT包下载.
必须下载完整的Eclipse开发环境才能得到SWT包.
SWT是作为Eclipse开发环境的一个插件形式存在.
此插件名为$ECLIPSE\pluginsorg.
eclipse.
swt.
win32.
win32.
x86_3.
1.
1.
jar.

(1)右击"SWT"项目,选择【属性】命令,弹出【SWT的属性】对话框.
(2)在左侧列表中选择【Java构建路径】选项,在右侧单击【添加变量】按钮,弹出【新建变量路径条目】对话框.
(3)单击【配置变量】按钮,弹出【首选项】对话框.
(4)单击【新建】按钮,弹出【新建变量条目】对话框.
(5)在【名称】文本框中输入"SWT_LIB",单击【文件】按钮,弹出【选择Jar】对话框,选择$ECLIPSE\pluginsorg.
eclipse.
swt.
win32.
win32.
x86_3.
1.
1.
jar.
单击【打开】按钮,返回【新建变量条目】对话框,依次单击【确定】按钮.

此时,SWT_LIB变量已放入【构建路径上的JAR和类文件夹】列表框中,如图1-10所示.
图1-10SWT_LIB的属性配置3.
编写程序(1)右击"src"文件夹,依次选择【新建】|【包】命令,弹出【新建Java包】对话框.
在【名称】文本框中输入"net.
chapter4",单击【完成】按钮.
(2)右击"net.
chapter4"包,依次选择【新建】|【类】命令,弹出【新建Java类】对话框.
在【名称】文本框中输入"SimpleForm",单击【完成】按钮.
(3)编写程序代码.
代码如下:publicclassSimpleForm{publicstaticvoidmain(String[]args){Displaydisplay=newDisplay();//创建Display实例Shellshell=newShell(display);//创建Shell实例shell.
setText("窗口"设置窗口的显示标签shell.
setBounds(200,200,500,350);//设置shell的显示范围//设置窗口布局FormLayoutlayout=newFormLayout();layout.
marginHeight=50;layout.
marginWidth=50;shell.
setLayout(layout);//创建标签,用于显示"你好,SWT!
"字样LabelhelloLabel=newLabel(shell,SWT.
CENTER);//采用SWT.
CENTER样式,即居中显示helloLabel.
setText("你好,SWT!
");shell.
pack(以紧凑方式显示窗口并自动调节大小shell.
open(打开shell,类似于打开窗口//开始事件处理循环,直到用户关闭窗口while(!
shell.
isDisposed()){if(!
display.
readAndDispatch())display.
sleep();}display.
dispose();}}4.
配置本机图形库并运行程序用SWT编写的GUI与其所运行的平台的外观一致,速度也与本机程序相仿.
这是因为SWT调用了操作系统自带的图形库,因此在运行程序时需指出本机图形库的位置.
SWT本机图形文件名一般为swt-win32-nnnn.
dll,这里的nnnn代表4位整数,它们位于$ECLIPSE\plugins\org.
eclipse.
swt.
win32.

win32.
x86_3.
1.
1.
jar包中.
为了确保这些库文件能被程序所用,可将本机图形库放进java.
library.
path变量所包含的任何目录中.
(1)解压org.
eclipse.
swt.
win32.
win32.
x86_3.
1.
1.
jar至任意目录,如E:\swt目录.
(2)右击"SimpleForm.
java"文件,依次选择【运行方式】|【运行】命令,弹出【运行】对话框.
选择左侧的SWT应用程序,单击【新建】按钮,自动新建SimpleForm项.
在右侧选择【自变量】选项卡,在【VM自变量】文本框中输入"-Djava.
library.
path=E:\swt",如图1-11所示.

图1-11java.
library.
path参数配置(3)单击【运行】按钮,运行SimpleForm程序.
1.
5.
2简单的用户密码验证器本小节实例将实现一个简单的用户密码验证器,如果输入用户名"abc"、密码"abc",窗口将显示"通过"字样,否则显示"不通过".
SWT2.
0提供了一种新的标准布局:FormLayout.
FormLayout通过定义组件4个边的"粘贴"位置来排列组件,被引用的相对的组件可以是父组件,也可以是同一容器中的其他组件.

SWT的事件处理模型和AWT类似,事件的处理委托给外部实体进行,实现了将事件源和监听器分开,通过addXXXXListener方法向组件注册监听器.
本例将使用SelectionAdapter处理按钮单击事件.
程序的运行效果分别如下.

(1)用户密码验证初始窗口如图1-12所示.
(2)当输入用户名"abc"、密码"abc"时,窗口显示"通过"字样,如图1-13所示.
(3)当输入其他的用户名和密码时,窗口显示"不通过"字样,如图1-14所示.
图1-12用户密码验证初始窗口图1-13用户名密码通过验证图1-14用户名密码未能通过验证跟我做1.
新建Java文件UserPassword.
java右击包名"net.
chapter5",依次选择【新建】|【类】命令,在弹出的新类对话框中输入类名UserPassword,单击【完成】按钮.
2.
编写代码首先创建用于界面显示的控件,并设置FormLayout布局.
代码如下:publicclassUserPassword{Displaydisplay=newDisplay();//创建Display实例Shellshell=newShell(display);//创建Shell实例TextnameText;用户名"文本框TextpassText;密码"文本框Buttonsubmit;确定"按钮Buttoncancel;取消"按钮LabelresultLabel;显示验证结果标签//用户密码验证方法的实现publicUserPassword(){//设置FormLayout布局,定义空白边FormLayoutlayout=newFormLayout();FormDatadata=newFormData();//定义具体的布局数据layout.
marginHeight=20;设置空白边高度layout.
marginWidth=30;设置空白边宽度shell.
setLayout(layout);shell.
setText("用户密码验证");LabelnameLabel=newLabel(shell,SWT.
NONE)用户名"标签nameLabel.
setText("用户名"设置标签内容//定义name标签的位置.
它的顶边离父组件(窗口shell)的空白边距离是父组件clientAr(除空白边以外的空间)高度的15%,偏移的点数为0data.
top=newFormAttachment(15,0);nameLabel.
setLayoutData(data);定义name文本框的位置.
它的顶边在nameLabel标签的中心位置,左边距nameLabel标签的右边有10个点.
代码如下:nameText=newText(shell,SWT.
SINGLE|SWT.
BORDER);data=newFormData();data.
top=newFormAttachment(nameLabel,0,SWT.
CENTER);data.
left=newFormAttachment(nameLabel,10,SWT.
RIGHT);nameText.
setLayoutData(data);定义passLabel标签的位置.
它的顶边距nameLabel标签的底边有10个点数的偏移.
代码如下:LabelpassLabel=newLabel(shell,SWT.
NONE);passLabel.
setText("密码");data=newFormData();data.
top=newFormAttachment(nameLabel,10,SWT.
BOTTOM);passLabel.
setLayoutData(data);定义pass文本输入的位置.
它的顶边在passLabel标签的中心位置,左边与nameText文本框的左边对齐.
代码如下:passText=newText(shell,SWT.
SINGLE|SWT.
BORDER);passText.
setEchoChar('*');//输入字符显示为"*"passText.
setTabs(2);data=newFormData();data.
top=newFormAttachment(passLabel,0,SWT.
CENTER);data.
left=newFormAttachment(nameText,0,SWT.
LEFT);passText.
setLayoutData(data);//两个button由一个使用RowLayout的组件来设置CompositetowButton=newComposite(shell,SWT.
NONE);RowLayoutrowLayout=newRowLayout();rowLayout.
justify=true;towButton.
setLayout(rowLayout);定义button组件的位置.
它的顶边距passLabel标签的底边有15个点数,左边与passLabel标签的左边对齐,右边与passText文本输入的右边对齐.
代码如下:data=newFormData();data.
top=newFormAttachment(passLabel,15,SWT.
BOTTOM);data.
left=newFormAttachment(passLabel,0,SWT.
LEFT);data.
right=newFormAttachment(passText,0,SWT.
RIGHT);towButton.
setLayoutData(data);定义显示结果的resultLabel标签.
它的顶边距towButton的底边有15个点数,左边与towButton标签的左边对齐,右边与towButton文本输入的右边对齐.
代码如下:CompositeresultComp=newComposite(shell,SWT.
NONE);resultComp.
setLayout(rowLayout);resultLabel=newLabel(resultComp,SWT.
CENTER);resultLabel.
setText("是否通过验证");data=newFormData();data.
top=newFormAttachment(towButton,15,SWT.
BOTTOM);data.
left=newFormAttachment(towButton,0,SWT.
LEFT);data.
right=newFormAttachment(towButton,0,SWT.
RIGHT);resultComp.
setLayoutData(data);为submit按钮添加事件监听器,如果用户名和密码均为"abc",则通过验证,否则不通过.
代码如下:submit=newButton(towButton,SWT.
PUSH);submit.
setText("确定");submit.
addSelectionListener(newSelectionAdapter(){publicvoidwidgetSelected(SelectionEventevent){if(nameText.
getText().
equals("abc")//判断用户名是否为"abc"&&passText.
getText().
equals("abc")){//判断密码是否为"abc"resultLabel.
setText("通过");}else{resultLabel.
setText("不通过");}}});为cancel按钮添加事件监听器,将nameText文本框和passText文本框清空.
代码如下:cancel=newButton(towButton,SWT.
PUSH);cancel.
setText("取消");cancel.
addSelectionListener(newSelectionAdapter(){publicvoidwidgetSelected(SelectionEventevent){nameText.
setText("");passText.
setText("");}});shell.
pack();shell.
open();//开始事件处理循环,直到用户关闭窗口while(!
shell.
isDisposed()){if(!
display.
readAndDispatch()){//Ifnomoreentriesineventqueuedisplay.
sleep();}}display.
dispose();}//主函数publicstaticvoidmain(String[]args){newUserPassword();}}3.
设置java.
library.
path参数并运行程序(1)右击"UserPassword.
java"文件,依次选择【运行方式】|【运行】命令,弹出【运行】对话框.
选择左侧的SWT应用程序,单击【新建】按钮,自动新建UserPassword项.
在右侧选择【自变量】选项卡,在【VM自变量】文本框中输入"-Djava.
library.
path=E:\swt".

(2)单击【运行】按钮,运行UserPassword程序.
1.
5.
3文件选择器本小节实例将实现一个文件选择器.
从文件选择器中可选择一个或多个文件,选择完成后,可在窗口中显示所选文件的路径和名称.
FileDialog类实现了用户对文件的操作,它可让用户浏览文件,选择一个或多个文件.
用户可设置默认的文件浏览路径,可设置默认的文件类型.
程序的运行效果分别如下.

(1)文件选择器运行初始窗口如图1-15所示.
(2)单击【请选择文件】按钮,弹出【打开】对话框,如图1-16所示.
图1-15文件选择器运行初始窗口图1-16【打开】对话框(3)选择多个文件后,将在【文件选择器】窗口显示所选文件的路径和名称,如图1-17所示.
图1-17选择文件后的窗口跟我做1.
新建Java文件FileSelection.
java右击包名"net.
chapter5",依次选择【新建】|【类】命令,在弹出的新建类对话框中输入类名FileSelection,单击【完成】按钮.
2.
编写代码publicclassFileSelection{Displaydisplay=newDisplay();//创建Display实例Shellshell=newShell(display);//创建Shell实例LabelfileLabel;用于显示文件的标签ButtonselectFileButton;文件选择按钮StringfilePath="c:打开"文件对话框默认路径//文件选择器的实现publicFileSelection(){//设置标签的样式、背景和文字fileLabel=newLabel(shell,SWT.
BORDER|SWT.
WRAP);fileLabel.
setBackground(display.
getSystemColor(SWT.
COLOR_WHITE));fileLabel.
setText("单击按钮,选择文件.
");//实例化按钮并设置显示文字selectFileButton=newButton(shell,SWT.
PUSH);selectFileButton.
setText("请选择文件:");以下为程序的关键部分:为按钮添加事件监听器,限定默认文件的类型为文本文件和HTML文件.
用户选择多个文件后,将文件名放入一个String类型的数组中.
代码如下:selectFileButton.
addListener(SWT.
Selection,newListener(){publicvoidhandleEvent(Eventevent){//设置弹出的文件选择对话框FileDialogfileDialog=newFileDialog(shell,SWT.
MULTI);fileDialog.
setFilterPath(filePath);//限定文件的类型fileDialog.
setFilterExtensions(newString[]{"*.
txt","*.
html"fileDialog.
setFilterNames(newString[]{"文本文件","HTML文件","任何"});StringfirstFile=fileDialog.
open();//当选择了一或多个文件if(firstFile!
=null){filePath=fileDialog.
getFilterPath();//取得文件名并在标签中显示String[]selectedFiles=fileDialog.
getFileNames();StringBuffersb=newStringBuffer("您选择了如下的文件"+fileDialog.
getFilterPath(n");for(inti=0;ilength;i++){sb.
append(selectedFiles[i]+"\n");}fileLabel.
setText(sb.
toString());}}});fileLabel.
setBounds(0,0,400,100);selectFileButton.
setBounds(100,110,200,25);shell.
setText("文件选择器");shell.
pack();shell.
open();//开始事件处理循环,直到用户关闭窗口while(!
shell.
isDisposed()){if(!
display.
readAndDispatch()){//Ifnomoreentriesineventqueuedisplay.
sleep();}}display.
dispose();}//主函数publicstaticvoidmain(String[]args){newFileSelection();}}3.
设置java.
library.
path参数并运行程序(1)右击"FileSelection.
java"文件,依次选择【运行方式】|【运行】命令,弹出【运行】对话框.
选择左侧的SWT应用程序,单击【新建】按钮,自动新建FileSelection项.
在右侧选择【自变量】选项卡,在【VM自变量】文本框中输入"-Djava.
library.
path=E:\swt".

Hosteons - 限时洛杉矶/达拉斯/纽约 免费升级至10G带宽 低至年$21

Hosteons,一家海外主机商成立于2018年,在之前还没有介绍和接触这个主机商,今天是有在LEB上看到有官方发送的活动主要是针对LEB的用户提供的洛杉矶、达拉斯和纽约三个机房的方案,最低年付21美元,其特点主要在于可以从1G带宽升级至10G,而且是免费的,是不是很吸引人?本来这次活动是仅仅在LEB留言提交账单ID才可以,这个感觉有点麻烦。不过看到老龚同学有拿到识别优惠码,于是就一并来分享给有需...

欧路云:美国200G高防云-10元/月,香港云-15元/月,加拿大480G高防云-23元/月

欧路云 主要运行弹性云服务器,可自由定制配置,可选加拿大的480G超高防系列,也可以选择美国(200G高防)系列,也有速度直逼内地的香港CN2系列。所有配置都可以在下单的时候自行根据项目 需求来定制自由升级降级 (降级按天数配置费用 退款回预存款)。由专业人员提供一系列的技术支持!官方网站:https://www.oulucloud.com/云服务器(主机测评专属优惠)全场8折 优惠码:zhuji...

青果云(590元/年),美国vps洛杉矶CN2 GIA主机测评 1核1G 10M

青果网络QG.NET定位为高效多云管理服务商,已拥有工信部颁发的全网云计算/CDN/IDC/ISP/IP-VPN等多项资质,是CNNIC/APNIC联盟的成员之一,2019年荣获国家高薪技术企业、福建省省级高新技术企业双项荣誉。那么青果网络作为国内主流的IDC厂商之一,那么其旗下美国洛杉矶CN2 GIA线路云服务器到底怎么样?官方网站:https://www.qg.net/CPU内存系统盘流量宽带...

java随机数为你推荐
回收站在哪vivo手机的回收站在哪iphone5解锁苹果5手机怎么屏幕解锁博客外链外链都要怎么做?博客外链有没有效果?吴晓波频道买粉吴晓波频道学习卡资费?自助建站自助建站哪个平台最好?ps抠图技巧photoshop抠图技巧xp系统停止服务XP系统停止服务后电脑怎么办?安装迅雷看看播放器迅雷看看播放器下了安装不了小米手柄小米手柄能连几个手机网管工具网吧管理软件都有哪些?
域名查询工具 wordpress主机 59.99美元 kddi godaddy续费优惠码 云主机51web 免费博客空间 dropbox网盘 ibrs 蜗牛魔方 炎黄盛世 paypal注册教程 七夕快乐英语 腾讯总部在哪 双线asp空间 宏讯 数据库空间 lamp的音标 云服务是什么意思 广州服务器托管 更多