· 四、响应键盘
我们再来看对键盘响应的例子:
//Keyboard.java
import java.awt.*;
import java.applet.*;
public class Keyboard extends Applet
{
String text="";
public void paint(Graphics g)
{g.drawString(text,20,20);}
public boolean keyDown(Event evt,int x)//键盘被按下的处理函数
{
text="Key Down";
repaint();
return true;
}
public boolean keyUp(Event evt,int x)//键盘被松开的处理函数
{
text="";
repaint();
return true;
}
}
当键盘被按下时,程序就会显示"Key Down",键盘松开时清除文字。利用这些函数,我们就可以用鼠标和键盘函数与用户交互。
· 五、显示图像文件
由于图像文件在web上的广泛应用,因此Java也提供了许多函数,对图像进行各种处理,比如对图像进行显示、拷贝、切割、缩放、各种颜色的变换等等。最常使用的就是图像的显示,而且也非常简单,仅仅用drawImage()就可实现:
//ShowImg.java
import java.awt.*;
import java.applet.*;
import java.awt.image.*;
import java.awt.image.ImageObserver;
import java.net.URL;
public class ShowImg extends Applet implements ImageObserver//使用ImageObserver接口
{
Image img;
public void init()
{
String imgname=getParameter("imagename");
URL imgURL=getDocumentBase();
img=getImage(imgURL,imgname);
}
public void paint(Graphics g)
{g.drawImage(img,0,0,this);}
}
此时将图像文件名放在参数imagename中传送给程序,程序将显示出图像。目前,Java支持的图像格式有gif、jpg文件。要注意,由于图像文件是异步传输的,因此我们使用了接口ImageObserver来处理图像传输过程中的信息;当然必要的时候,我们可以用类MediaTracker来跟踪图像的传输。
· 六、播放声音文件
声音和图像是息息相关的,既然说了图像当然要再讲一讲声音。Java提供了简单的声音函数来支持声音的播放,这几个声音函数分别是play()、loop()和stop()。我们来看用play()函数来播放声音的例子:
//Sound.java
import java.awt.*;
import java.applet.*;
import java.net.URL;
public class Sound extends Applet
{
String soundname;
public void init()
{
soundname=getParameter("soundname");
}
public boolean mouseDown(Event evt,int x,int y)
{
play(getDocumentBase(),soundname);
return true;
}
}
把声音文件通过参数"soundname"传送给程序,当鼠标点击程序时,就会播放指定的声音文件。要注意,声音的播放也是异步执行的,当执行play()函数时,函数立即返回,声音由后台程序播放。
· 七、获取程序显示空间大小Java Applet是在页面中运行的,在页面中我们通过定义"width=?? height=??"来规定Java程序的显示空间。因此Java程序获得此信息是十分必要的,Java程序应该通过调整自身来适应外部空间。下面我通过一个画椭圆的程序来介绍获得显示空间大小的方法:
//GetSize.java
import java.awt.*;
import java.applet.*;
public class GetSize extends Applet
{
Dimension sz;
public void init()
{sz=size();}//获得空间大小
public void paint(Graphics g)
{g.fillOval(0,0,sz.width,sz.height);}
}
程序通过size()函数获得空间大小,此函数返回的是Dimension类,程序的显示宽度和高度都包含在返回的Dimention类中。
· 八、设置颜色要做一个漂亮的Java Applet程序一定离不开颜色的设置,包括背景颜色和前景颜色,Java提供了丰富的颜色处理函数。我们这里只介绍最简单的颜色设置,这个程序将背景设置成蓝色,前景设置成绿色,并用前景色填充一个矩形:
//SetColor.java
import java.awt.*;
import java.applet.*;
public class SetColor extends Applet
{
public void paint(Graphics g)
{
setBackground(Color.blue);//设置背景色为蓝色
setForeground(Color.green);//设置前景色为绿色
g.fillRect(25,4,50,20);
}
}
另外,还可以用Graphics类中的seColor()函数来改变画笔颜色。