Java语言程序设计基础 }
}
str=str.trim();
n=Integer.parseInt(str); if(n*13>=ra.length()){ System.out.println(\记录号超出范围!\
} else{ ra.seek(n*13); b=new byte[8]; ra.read(b); int age=ra.readInt(); boolean sex=ra.readBoolean(); System.out.println(new String(b)+\ } ra.close(); }
catch(IOException e){ System.out.println(e.toString()); }
catch(NumberFormatException e) { System.out.println(e.toString()); }
实训17 Java Applet
实训内容
创建图片浏览器PictureViewer类,用于图片的浏览。要求:四个按钮分别实现相应的显示功能,并且在图片进行切换时播放声音进行提示,如图所示(略)。图中所示的“图片浏览器”几个字是通过网页向Applet程序传递参数读入的。 参考答案
//本例只作了四张图片的浏览,多张图片的浏览读者可根据情况自行修改 package myapplet; import java.awt.*;
import java.awt.event.*; import java.applet.*; import java.net.*;
public class PictureViewer extends Applet implements ActionListener{
284
附录 实训参考答案
int i; String s;
Image image; URL imageurl; Button [] button; AudioClip sound; public void init(){ s=getParameter(\ button=new Button[4]; button[0]=new Button(\第一幅图片\ button[1]=new Button(\前一幅图片\ button[2]=new Button(\后一幅图片\ button[3]=new Button(\最后一幅图片\
for (int i=0;i<4;i++){ add(button[i]); button[i].addActionListener(this); } sound=this.getAudioClip(this.getCodeBase(),\ try{ imageurl=new URL(this.getCodeBase(),\ this.image=this.getImage(imageurl); }catch(MalformedURLException urle){ System.err.println(urle); } }
public void paint(Graphics g){ g.setColor(Color.red); g.setFont(new Font(\宋体\ g.drawString(s,75,280); g.drawImage(this.image,50,40,this); }
public void actionPerformed(ActionEvent e){ if (e.getSource()==button[0]) { i=0; } if (e.getSource()==button[1]) { i=i-1; if(i<0) i=3; }
285
Java语言程序设计基础 if (e.getSource()==button[2]) { i=i+1; if(i>3) i=0; } if (e.getSource()==button[3]) { i=3; } try{ imageurl=new URL(this.getCodeBase(),\ this.image=this.getImage(imageurl); }catch(MalformedURLException urle){ System.err.println(urle); } sound.play(); repaint(); } }
网页的主要代码为:
实训18 图形用户界面(—)
实训内容
1.设计一个applet,分别设置FlowLayout的对齐方式为居中、左对齐、和右对齐,在applet中放置五个按钮,按钮文本任意,用appletviewer观察小程序的运行情况,试着改变appletviewer窗口大小,观察各种对齐方式下,按钮的排列有何变化。
2.设计一个applet,使用BorderLayout,设置组件水平、竖直间距分别为10和5像素,在applet中放置五个按钮,按钮文本任意,分别放在BorderLayout的五个区,用appletviewer观察小程序的运行情况,试着改变appletviewer窗口大小,观察组件变化。
3.设计一个applet,使用GridLayout,在applet中放置13个按钮,按钮文本任意,分别设置GridLayout的行列为[4,4]、[3,5]、[5,3],用appletviewer观察小程序的运行情况,试着改变appletviewer窗口大小,观察组件变化。把GridLayout的行列分别改变为[13,0]和[0,13],会出现什么情况?你能得出什么结论?
4.设计一个applet,使用CardLayout,设置4个卡片,每张卡片上都放置一个Label,Label的内容分别是“百川东到海”、“何时复西归”、“少年不努力”、“老大徒伤悲”,字体自定。
5.混合使用布局管理器,实现简易QQ用户登录界面的小程序。
286
附录 实训参考答案 参考答案
1.
import java.applet.Applet; import java.awt.*;
public class T16_1_1 extends Applet{ public void init(){ //Center alignment setLayout(new FlowLayout(FlowLayout.CENTER)); //Left alignment //setLayout(new FlowLayout(FlowLayout.LEFT)); //Right alignment //setLayout(new FlowLayout(FlowLayout.RIGHT)); for(int i=1;i<=5;i++){ add(new Button(\ } } }
注:改变注释语句,将得到不同的结果。 2.
import java.applet.Applet; import java.awt.*;
public class T16_1_2 extends Applet{ public void init(){ setLayout(new BorderLayout(10,5)); add(new Button(\ add(new Button(\ add(new Button(\ add(new Button(\ add(new Button(\ }
}
//try next 5 lines instead of above //add(new Button(\//add(new Button(\//add(new Button(\//add(new Button(\//add(new Button(\
287
Java语言程序设计基础 3.
import java.applet.Applet; import java.awt.*;
public class T16_1_3 extends Applet{ public void init(){ //set gridlayout to 4 rows and 4 cols setLayout(new GridLayout(4,4)); //set gridlayout to 3 rows and 5 cols //setLayout(new GridLayout(3,5)); //set gridlayout to 5 rows and 3 cols //setLayout(new GridLayout(5,3)); //set gridlayout to 13 rows and 0 cols //setLayout(new GridLayout(13,0)); //set gridlayout to 0 rows and 13 cols //setLayout(new GridLayout(0,13)); //add 13 button to applet for(int i=1;i<=13;i++){ add(new Button(\ } } }
注:改变注释语句,分别得到不同结果。 4.
import java.applet.Applet; import java.awt.*;
public class T16_1_4 extends Applet{ public void init(){ String[] str={\百川东到海\何时复西归\少壮不努力\老大徙伤悲\
setLayout(new CardLayout());
setFont(new Font(\宋体\for(int i=0;i<4;i++){ add(String.valueOf(i+1),new Label(str[i])); }
} } 5.
288