java第八章(实验十三)
- 格式:doc
- 大小:59.50 KB
- 文档页数:3
习题八参考答案1.什么是组件?什么是容器?并说明各自的作用。
答:从实现角度来看,组件(Component)是构成GUI的基本要素,作用是通过对不同事件的响应来完成和用户的交互或组件之间的交互;容器是能容纳和排列组件的对象,如Applet> Panel (面板)、Frame (窗口)等,作用就是放置组件并控制组件位置。
2.简述Swing组件的优点。
答:Swing是在AWT基础上扩展而来的,提供了非常丰富的组件,远远多于AWT,并且引入了新的概念和性能,这使得基于Swing开发GUI应用程序比直接使用AWT开发更为灵活、方便、效率高,而且能设计出更优美的、感受更好的GUI。
3.简述容器的概念,结合8.4.7小节的内容,解释什么是应用程序的主框架?答:容器是用来容纳其他组件和容器的特殊组件,是由容器类(Container类)创建的对象。
在Java语言中,容器类是组件类(组件类Component类)的一个子类,具有组件的所有性质。
在AWT 技术中,容器类由java. awt包提供,主要包括面板类Panel、窗口类Window、结构类Frame、对话框类Dialog等。
在Swing技术中,容器类由javax. swing包提供,并可分为如下三类:>顶层容器:JFramc. JApplet. JDialog、JWindow;>中间容器:JPanel、JScrollPane^ JSplitPane、JDesktopPaneJToolBar;特殊容器:在GUI上起特殊作用的中间层,如J Interna IFrame、JLayeredPane、 JRootPaneo 应用程序的主框架由可以容纳应用程序各种组件的顶层容器创建,除了负责组件的管理外,通常还提供最大化、最小化、关闭按钮等,实现应用程序展现方式以及关闭等。
4.总结JFrame的使用要点,并说明内容面板的作用。
答:JFrame类包含很多设置窗体的方法,可以用setTitle(String tille)方法设置窗体标题,用setBounds(inl x,int y,int width,int height)方法设置窗体显示的位置及大小,用setVisable (Boolean b)方法设置可见与否(默认不可见)。
实验十三(1)、文件字符流
1、实验目的:
本实验的目的是让学生学习掌握字符输入/输出流的的使用。
2、实验要求:编写一个Java应用程序,使用字符输入、输出流读写文件。
将一段文
字加密后存入文件,然后再读取。
3、程序效果如图所示:
4、程序模板
按模板要求,将[代码1]~[代码6]替换为java程序代码。
import java.io.*;
class Example20_5
{ public static void main(String args[])
{ char a[]="今晚10点发起总攻".toCharArray();
int n=0;
try{ [代码1] //创建secret.txt文件
for(int i=0;i<a.length;i++)
{ a[i]=(char)(a[i]^'R');
}
[代码2]//创建指向f的字符输出流
[代码3] //out将数组a写到文件中
[代码4]//out关闭
[代码5]//创建指向f的字符输入流
int length=(int)f.length();
char tom[]=new char[length];
while((n=in.read(tom,0,length))!=-1)
{ String s=new String (tom,0,n);
System.out.println("密文:"+s);
for(int i=0;i<n;i++)
{ tom[i]=(char)(tom[i]^'R');
}
String 明文=new String(tom,0,n);
System.out.println("明文:"+明文);
}
[代码6]//in关闭
}
catch(IOException e)
{ System.out.println("File read Error");
}
}
}
5、实验指导
1)输入流FileReader调用int read(byte[] b, int off, int len) :将数据读入一个字节数组,同时返回实际读取的字节数。
如果返回-1,表示读到了输入流的末尾。
off指定在数组b中存放数据的起始偏移位置;len指定读取的最大字节数。
2)输出流FileWriter调用void write(byte[] b, int off, int len) :往输出流中写入数组b中从偏移量off开始的len个字节的数据。
实验十三(2)、随机读写流
1、实验目的:
本实验的目的是让学生学习掌握RandomAccessFile类的使用。
2、实验要求:编写一个Java应用程序,把几个int型整数写入到一个文件中,然后按
相反顺序读出这些数据。
3、程序效果如图所示:
4、程序模板
按模板要求,将[代码1]~[代码4]替换为java程序代码。
import java.io.*;
public class Example20_10
{ public static void main(String args[])
{ RandomAccessFile random=null;
int data[]={1,2,3,4,5,6,7,8,9,10};
try{ File f=new File("hello.txt");
[代码1]//创建指向文件f的random对象
}
catch(Exception e){}
try{ for(int i=0;i<data.length;i++)
{ [代码2] //将数组data[]写入到文件中
}
for(long i=data.length-1;i>=0;i--) //一个int型数据占4个字节,我们从
{ random.seek(i*4); //文件的第36个字节读取最后面的一个整数,
//每隔4个字节往前读取一个整数:
[代码3] //按相反顺序读出数据,并打印输出。
}
[代码4] //关闭随机读写流
}
catch(IOException e){}
}
}
5、实验指导
⏹seek(long a):用来定位流的读写位置,其中参数a确定读写位置距离文件开头的字节
个数。
⏹getFilePointer( )获取流的当前位置。