|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。编程|收集Java的收集功效与编程
徐迎晓
(上海年夜学盘算中央25#)
摘要:Java言语是Internet上最抢手的编程言语,本文针对
Java的收集功效,对Java从收集上猎取图像、声响、
HTML文档及文本文件等编程办法作了开端的先容,同
时先容了静态猎取收集上资本的办法作了先容。文中
供应了大批简明易懂的实例。
关头词:Java;Internet;收集
Java言语是Internet上新兴的编程言语,对Java的特征和基
本的编程办法已有良多文章作过先容。可是,宽大Java喜好者更但愿
懂得Java更深一步的编程办法,本文就Java的收集功效及其编程办法
作一开端的先容。
为了便利初度打仗Java的读者,本文先就Java编程的一些知识
作复杂先容。
1、Java编程简介
1.编程情况:
关于年夜部分读者,以下的设置是较为经济的一种选择:
操纵体系Win95
编译软件JDK1.01
扫瞄软件Netscape2.0以上(32位)
2.编程办法:
先用文本编纂器如Edit、NotePad等输出Java程序,以.java为
文件名后缀存盘。
再实行命令行:“Javac文件名”来编译Java程序。编译后天生
后缀为.class的字节码文件。
最初,假如是JavaApplitcation,则实行命令行:“Java字
节码文件名”来运转Java程序。
假如是JavaApplet,则用文本编纂器输出挪用该JavaApplet
的HTML文档,以.htm为文件名后缀存盘。再实行命令行:
“appletviewerHTML文件名”来运转JavaApplet。或用Netscape
翻开该HTML文档。
3.关于本文中程序的申明
为了使程序可以最简便地表现其所代表的编程办法,本文中的程
序一样平常接纳最复杂的情势,省略了线程等外容。因而,本文的程序不
是“好”的程序,但最简单为初学者了解。
本文的一切程序经编译后,天生的字节码文件及对应的HTML文档
已上载到http://www.shu.edu.cn/~xyx/test/jvnet,都可准确
运转。连进Internet的读者可用扫瞄器翻开该地点,检察运转效果。
连进Internet的读者也能够在当地硬盘输出并编译本文的程序,
用Netscape的File/OpenFile菜单翻开HTML文档,体味编程办法并
检察运转效果。假如读者想将JavaApplet放到本人的主机上或其他
ftp服务器上,在Netscape顶用http协定或ftp协定挪用,出于平安
性限定,应作以下修正:
假如读者在某个WWW主机上有帐号,能够做团体Homepage(一样平常
在用户根目次创立WWW或public_html目次便可,Homepage的地点为
http://HostName/~团体帐号),可将本文程序中对应的
http://www.shu.edu.cn/~xyx/部分修正为读者本人的Web结点地点,
然后将编译后天生的字节码文件及对应的HTML文档上载到本人的结点上。
假如读者的盘算机连进了Internet,也能够找一个能够上载的
ftp结点,如:ftp://ftp.shnet.edu.cn/incoming,将本文程序中
对应的http://www.shu.edu.cn/~xyx/部分修正为ftp结点的地点,
将编译后天生的字节码文件及对应的HTML文档上载到该结点上,以查
看运转效果。
假如读者的盘算机没有联网,也能够在单机上运转Web服务软
件如WebstarforWin95,将本文程序中对应的http://www.shu
.edu.cn/~xyx/部分修正为“http://当地IP地点”的情势,来摹拟
收集编程。
2、Java收集功效及猎取收集上资本的一样平常步骤
Java程序能够猎取收集上结点的图像、声响、HTML文档及文本
等资本,并能够对取得的资本举行处置。比方Java程序能够每隔一
准时间读取某结点供应的最新数据,并以图表的情势显现出来。
在编程处置上,一样平常师长教师成一个URL范例的对象,然后用Java
中响应的办法(method)猎取该对象所代表的资本。上面分离先容
Java收集功效的几个例子,并由此先容几种分歧的编程办法。
3、从收集上猎取图像
JavaApplet能够间接从收集上结点猎取图像并显现出来。为
了懂得其编程办法和从当地显现图像的编程有何分歧,我们先不思索
收集功效,来看一个复杂的图像显现的例子:
●程序1
importjava.applet.*;
importjava.awt.*;
publicclassimag0extendsApplet{
Imageimage;
publicvoidinit(){
image=getImage(getDocumentBase(),"test.gif");
}
publicvoidpaint(Graphicsg){
g.drawImage(image,0,0,this);
}
}
这是一个最复杂的猎取并显现图像的例子,在该例中,先用
getImage(getDocumentBase(),图像文件名)从HTML文档地点地位调
用图像test.gif,并由今生成一个Image范例的对象image,然后用
drawImage(image,0,0,this)在屏幕大将图像显现出来。
假如想从收集上其他结点猎取图像,关头是创立对应于收集上
其他结点的Image范例的对象,一旦取得Image范例的对象取得了,
即可以对其举行任何大概的图像操纵。
Java供应了以下办法能够创立对应于其他结点的图像:
getImage(newURL(字符串))
其利用格局可有两种:
Stringurl="结点URL";
Imageimage;
try{
image=getImage(newURL(url));
}
catch(Exceptione){
System.out.println("CantopentheURL");
}
或
URLimgur=null;
Imageimage;
try{
imgur=newURL("结点URL");
}
catch(MalformedURLExceptione){
System.out.println("CantopentheURL");
}
image=getImage(imgur);
前一种格局用“newURL(url)”天生URL对象,并间接作为
getImage的参数,后一种格局先用“newURL(url)”天生一个URL
对象,再传给getImage。两种格局实质上是一样的。两种格局中,
天生URL对象的部分都包括在
try{
猎取URL对象
}
catch(MalformedURLExceptione){
堕落提醒
}
中。
比方要挪用http://www.shu.edu.cn/~xyx/img/shnet.jpg结点
的图像,第一种格局完全的程序以下:
●程序2
importjava.applet.*;
importjava.net.*;
importjava.awt.*;
publicclassimagextendsApplet{
Imageimage;
publicvoidinit(){
Stringurl="http://www.shu.edu.cn/~xyx/img/shnet.jpg";
try{
image=getImage(newURL(url));
}catch(Exceptione){}
}
publicvoidpaint(Graphicsg){
g.drawImage(image,0,0,this);
}
}
第二种格局完全的程序以下:
●程序3
importjava.applet.*;
importjava.net.*;
importjava.awt.*;
publicclassimag2extendsApplet{
Imageimage;
URLimgur=null;
publicvoidinit(){
try{
imgur=newURL("http://www.shu.edu.cn/~xyx/img/shnet.jpg");
}
catch(MalformedURLExceptione){
System.out.println("CantopentheURL");
}
image=getImage(imgur);
}
publicvoidpaint(Graphicsg){
g.drawImage(image,0,0,this);
}
}
将上述两个程序分离以imag.java和imag2.java存盘,实行
javacimag.java和javacimag2.java,将失掉编译后天生的imag
.class和imag2.class,最初创立挪用这两个JavaApplet的HTML文
档,如imag.class对应的HTML文档可以下:
<html>
<head>
<title>Example</title>
</head>
<center>
<appletcode=imag.classwidth=550height=250>
</applet>
</html>
将该HTML文档存进test.html文件,用Netscape翻开,假如你
的盘算机连进了Internet,即可以看到JavaApplet所显现的从网
络上取得的图像了。(关于本文中其他分歧的JavaApplet,对应
的HTML文档只需修正个中响应的“code=imag.class”便可。)
4、从收集上猎取声响
Java从收集上猎取声响文件并播放声响的编程办法有两类,一
是使用Java供应的play(URL)及play(URL,String)间接播放收集
上的声响文件,另外一类是经由过程getAudioClip(URL)或getAudioClip
(URL,String)先从收集上猎取声响文件,并天生AudioClip范例的
对象,然后对该对象举行操纵。
前者的利用格局是:
StringAudur="结点URL";
try{
play(newURL(Audur));
}catch(Exceptione){}
或
StringAudur="结点URL";
try{
play(newURL(Audur),声响文件名);
}catch(Exceptione){}
后者利用的格局是:
StringAudur="结点URL";
AudioCliploopClip;
try{
loopClip=getAudioClip(newURL(Audur));
}
catch(Exceptione){
System.out.println("CantopentheURL");
}
或
StringAudur="结点URL";
AudioCliploopClip;
try{
loopClip=getAudioClip(newURL(Audur),声响文件名);
}
catch(Exceptione){
System.out.println("CantopentheURL");
}
下面的四种格局都是将天生URL对象部分--“newURL(url)”
间接作为play或getAudioClip的参数;和后面处置图像的例子一样,
也能够先用“newURL(url)”猎取一个URL对象,再传给play或
getAudioClip。如对第一种play(URL)的格局,也可接纳以下的编
程格局:
URLAudur=null;
try{
Audur=newURL("结点URL");
}catch(Exceptione){
System.out.println("CantopentheURL");
}
play(Audur);
上面对前述四种从收集上猎取并播放声响文件的格局各举一复杂的例子,
以作编程时参考:
●程序4格局一
importjava.applet.*;
importjava.awt.*;
importjava.net.*;
publicclasssound1extendsApplet
{AudioCliploopClip;
publicvoidpaint(Graphicsg){
StringAudur="http://www.shu.edu.cn/~xyx/java/Animator/audio/bark.au";
try{
play(newURL(Audur));
}catch(Exceptione){}
}
}
●程序5格局二
importjava.applet.*;
importjava.awt.*;
importjava.net.*;
publicclasssound2extendsApplet
{AudioCliploopClip;
publicvoidpaint(Graphicsg){
StringAudur="http://www.shu.edu.cn/~xyx/java/Animator/audio/";
try{
play(newURL(Audur),"bark.au");
}catch(Exceptione){}
}
}
●程序6格局三
importjava.applet.*;
importjava.awt.*;
importjava.net.*;
publicclasssoundextendsApplet{
AudioCliploopClip;
publicvoidinit(){
StringAudur="http://www.shu.edu.cn/~xyx/java/Animator/audio/bark.au";
try{
loopClip=getAudioClip(newURL(Audur));
}catch(Exceptione){}
}
publicvoidpaint(Graphicsg){
loopClip.loop();
}
}
●程序7格局四
importjava.applet.*;
importjava.awt.*;
importjava.net.*;
publicclasssound0extendsApplet{
AudioCliploopClip;
URLauur;
publicvoidinit(){
try{
auur=newURL("http://www.shu.edu.cn/~xyx/java/Animator/audio/");
}
catch(MalformedURLExceptione){
System.out.println("CantopentheURL");
}
loopClip=getAudioClip(auur,"bark.au");
}
publicvoidpaint(Graphicsg){
loopClip.loop();
}
}
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。 |
|