Java语言实验报告四.docx
《Java语言实验报告四.docx》由会员分享,可在线阅读,更多相关《Java语言实验报告四.docx(25页珍藏版)》请在冰豆网上搜索。
![Java语言实验报告四.docx](https://file1.bdocx.com/fileroot1/2022-12/14/6ac54acc-04fb-4ac4-b31b-eb53aeac87d5/6ac54acc-04fb-4ac4-b31b-eb53aeac87d51.gif)
Java语言实验报告四
《Java语言和WWW技术》课程
实验报告四
******
学号:
*************
实验题1-1
[实验要求]
•在选择“兴趣爱好”的窗体中,有旅游、运动、阅读等选项,编写小程序,完成兴趣爱好的选择,并输出到文本框中。
•记录调试过程、步骤、程序和运行结果。
[实验程序]
importjava.awt.*;
importjava.awt.event.*;
classTest3extendsWindowAdapterimplementsItemListener
{Framef;
Panelp;
Checkboxc1,c2,c3;
TextFieldtf;
publicvoidgo(){
f=newFrame("Test3-3");
p=newPanel();
c1=newCheckbox("旅游");
c2=newCheckbox("运动");
c3=newCheckbox("阅读");
c1.addItemListener(this);
c2.addItemListener(this);
c3.addItemListener(this);
p.add(c1);p.add(c2);
p.add(c3);f.add(p,"Center");
tf=newTextField();
f.add(tf,"South");
f.addWindowListener(this);
MenuBarmb=newMenuBar();
f.setMenuBar(mb);
Menum1=newMenu("File");
Menum2=newMenu("Edit");
Menum3=newMenu("Help");
mb.add(m1);mb.add(m2);mb.add(m3);
Menum4=newMenu("Open");
MenuItemmi1=newMenuItem("New");
MenuItemmi2=newMenuItem("Save");
CheckboxMenuItemmi3=newCheckboxMenuItem("Show");
MenuItemmi4=newMenuItem("Quit");
m1.add(m4);
m1.add(mi1);
m1.add(mi2);
m1.add(mi3);
m1.addSeparator();
m1.add(mi4);
MenuItemmi41=newMenuItem("Openword");
MenuItemmi42=newMenuItem("Openexcel");
m4.add(mi41);
m4.add(mi42);
f.setSize(300,400);
f.setVisible(true);
}
publicstaticvoidmain(Stringargs[]){
Test3t=newTest3();
t.go();
}
publicvoiditemStateChanged(ItemEvente){
Stringst="youselected:
";
if(c1.getState()==true){
st=st+c1.getLabel()+"";
}
if(c2.getState()==true){
st=st+c2.getLabel()+"";
}
if(c3.getState()==true){
st=st+c3.getLabel()+"";
}
tf.setText(st);
}
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
}
[运行结果]
实验题1-2
[实验要求]
•在实验1-1程序上添加菜单,如下图所示
•调试并记录结果
[实验程序]
importjava.awt.*;
importjava.awt.event.*;
publicclassTest4_1extendsWindowAdapterimplementsItemListener{
privateFramef;
privateCheckboxc1,c2,c3;
privatePanelp;
privateTextFieldtf;
privateMenuBarmb;
privateMenumfile,mselect,mhelp;
privateMenuItemmf1,mf2,mf3,mf4,mf5;
privateCheckboxMenuItemms1,ms2,ms3;
publicTest4_1(){
f=newFrame("兴趣爱好窗口");
c1=newCheckbox("旅游");
c2=newCheckbox("运动");
c3=newCheckbox("阅读");
p=newPanel();
tf=newTextField(20);
mb=newMenuBar();
mfile=newMenu("File");
mselect=newMenu("Select");
mhelp=newMenu("Help");
mf1=newMenuItem("Open");
mf2=newMenuItem("New");
mf3=newMenuItem("Save");
mf4=newMenuItem("Show");
mf5=newMenuItem("Quit");
ms1=newCheckboxMenuItem("旅游");
ms2=newCheckboxMenuItem("运动");
ms3=newCheckboxMenuItem("阅读");
}
publicvoidlanchFrame(){
f.setMenuBar(mb);
mb.add(mfile);mb.add(mselect);mb.add(mhelp);
mfile.add(mf1);mfile.add(mf2);mfile.add(mf3);mfile.add(mf4);
mfile.addSeparator();mfile.add(mf5);
mselect.add(ms1);mselect.add(ms2);mselect.add(ms3);
f.add(tf,BorderLayout.SOUTH);
p.add(c1);p.add(c2);p.add(c3);
f.add(p,BorderLayout.CENTER);
f.addWindowListener(this);
c1.addItemListener(this);
c2.addItemListener(this);
c3.addItemListener(this);
ms1.addItemListener(this);
f.setSize(300,200);
f.setVisible(true);
}
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
publicvoiditemStateChanged(ItemEvente){
Stringst="您选择的兴趣爱好是:
";
if(c1.getState()==true||ms1.getState()==true){
st=st+c1.getLabel()+"";
c1.setState(true);
ms1.setState(true);
}
if(c2.getState()==true){
st=st+c2.getLabel()+"";
}
if(c3.getState()==true){
st=st+c3.getLabel()+"";
}
if(c1.getState()==false&&c2.getState()==false&&c3.getState()==false){
st="";
}
tf.setText(st);
}
publicstaticvoidmain(String[]args){
Test4_1t=newTest4_1();
t.lanchFrame();
}
}
[运行结果]
实验题2
[实验要求]
•运行弹出式菜单程序,调试并记录结果。
[实验程序]
importjava.awt.*;
importjava.awt.event.*;
publicclassPopupMenuExampleimplementsActionListener{
Framef;
Buttonb;
PopupMenupm;
publicstaticvoidmain(String[]args){
PopupMenuExamplepme=newPopupMenuExample();
pme.init();
}
publicvoidactionPerformed(ActionEvente){
pm.show(b,10,10);
}
voidinit(){
f=newFrame("PopupMenuExample");
b=newButton("Pressme");
b.addActionListener(this);
f.add(b,"Center");
pm=newPopupMenu("Popup");
pm.add(newMenuItem("New"));
pm.add(newMenuItem("Load"));
pm.add(newMenuItem("Save"));
pm.add(newMenuItem("Saveas..."));
f.add(pm);
f.setSize(200,200);
f.setVisible(true);
}
}
[运行结果]
[实验结论与收获]
掌握弹出式菜单的编程方法。
实验题3
[实验要求]
•编写Application程序,生成如图所示界面。
完成功能:
单击“显示”按钮,显示文本框,“显示”按钮不可用,“不显示”按钮可用;单击“不显示”按钮,文本框不可见,“显示”按钮可用,“不显示”按钮不可用。
•完成程序,调试并记录结果。
[实验程序]
importjava.awt.*;
importjava.awt.event.*;
publicclassEx4_3extendsWindowAdapterimplementsActionListener{
privateFramef;
privateTextFieldtf;
privateButtonb1,b2;
publicEx4_3(){
f=newFrame("Ex4_3");
tf=newTextField(20);
b1=newButton("显示");
b2=newButton("不显示");
}
publicvoidgo(){
f.setLayout(newFlowLayout());
f.add(b1);
f.add(b2);
f.add(tf);
b1.addActionListener(this);
b2.addActionListener(this);
f.addWindowListener(this);
f.setSize(300,300);
f.setVisible(true);
}
publicstaticvoidmain(String[]args){
Ex4_3t=newEx4_3();
t.go();
}
publicvoidactionPerformed(ActionEvente){
if(e.getActionCommand()==b1.getLabel()){//是否为b1按钮被按下?
tf.setVisible(true);
b1.setEnabled(false);
b2.setEnabled(true);
}elseif(e.getActionCommand()==b2.getLabel()){//是否为b2按钮被按下?
tf.setVisible(false);
b1.setEnabled(true);
b2.setEnabled(false);
}
}
publicvoidwindowClosing(WindowEvente){
System.exit
(1);
}
}
[运行结果]
[实验结论与收获]
掌握在Application程序中对按钮及文本框进行编程的方法。
。
实验题4
[实验要求]
•编写Applet程序,生成如图所示界面。
完成功能:
单击“显示”按钮,显示文本框,“显示”按钮不可用,“不显示”按钮可用;单击“不显示”按钮,文本框不可见,“显示”按钮可用,“不显示”按钮不可用。
•完成程序,调试并记录结果。
[实验程序]
importjava.awt.*;
importjava.applet.Applet;
publicclassEx4_4extendsApplet{
Buttonb1=newButton("显示");
Buttonb2=newButton("不显示");
TextFieldtf=newTextField("这是一个文本框!
",20);
Panelp=newPanel();
publicvoidinit(){
add(b1);add(b2);add(tf);
b1.setEnabled(false);
}
publicbooleanaction(Evente,Objecto){
if(e.target==b1){//判断是否是b1被按下
tf.setVisible(true);
b1.setEnabled(false);
b2.setEnabled(true);
}elseif(e.target==b2){//判断是否是b2被按下
tf.setVisible(false);
b1.setEnabled(true);
b2.setEnabled(false);
}
returntrue;
}
}
HTML文件程序
[运行结果]
[实验结论与收获]
掌握在Applet程序中对按钮及文本框进行编程的方法。
实验题5
[实验要求]
•调试程序。
•记录调试过程、步骤、程序和运行结果。
[实验程序]
importjava.io.*;
publicclassFileFilterTest{
publicstaticvoidmain(Stringargs[]){
Filedir=newFile("d:
//ex");
Filterfilter=newFilter("java");
System.out.println("listjavafilesindirectory"+dir);
Stringfiles[]=dir.list(filter);
for(inti=0;iFilef=newFile(dir,files[i]);
if(f.isFile())
System.out.println("file"+f);
else
System.out.println("subdirectory"+f);
}
}
}
importjava.io.*;
publicclassFilterimplementsFilenameFilter{
Stringextent;
Filter(Stringextent){
this.extent=extent;
}
publicbooleanaccept(Filedir,Stringname){
returnname.endsWith("."+extent);
}
}
[运行结果]
[实验结论与收获]
掌握读取指定类型文件名的方法。
实验题6
[实验要求]
•编程:
将当前目录“a.txt”文件中的内容写入新创建的“b.txt”文件中。
•调试并记录结果
[实验程序]
importjava.io.*;
publicclassEx4_6{
publicstaticvoidmain(String[]args){
//利用try~catch结构处理IOException异常
try{
//创建b.txt文件
FilemyFile=newFile("b.txt");
myFile.createNewFile();//createNewFile()创建新文件
//创建输入流bufIn,从a.txt文件向内存中读入信息的变量
FileReaderin=newFileReader("a.txt");
BufferedReaderbufIn=newBufferedReader(in);
//创建输出流bufOut,从内存向b.txt文件中写入信息的变量
FileWriterout=newFileWriter(myFile);
BufferedWriterbufOut=newBufferedWriter(out);
//定义变量line,从bufIn(从a.txt文件)中读取一行数据
Stringline;
line=bufIn.readLine();
//当line的数据不为空时,将line的数据输出写入到bufOut(b.txt文件)中
while(line!
=null){
System.out.println(line);
bufOut.write(line,0,line.length());
bufOut.newLine();
line=bufIn.readLine();
}
//关闭输入流bufIn和输出流bufOut
bufIn.close();
bufOut.close();
}catch(IOExceptione){
System.out.println(e);
}
}
}
[运行结果]
[实验结论与收获]
掌握读取及写入文本文件的方法。
实验题7
[实验要求]
•编程:
创建一个“test.txt”文件,向其中随机输入10个char类型的('A'~'Z')字符,并打印输出。
•调试并记录结果。
[实验程序]
importjava.io.*;
publicclassEx4_7{
publicstaticvoidmain(String[]args){
//利用try~catch结构处理IOException异常
try{
//创建test.txt文件
Filef=newFile("test.txt");
f.createNewFile();//createNewFile()创建文件
//创建一个从内存向文件中写入信息的变量out
FileWriterout=newFileWriter(f);
//利用out向文件写入10个英文字母
charc;
for(inti=0;i<10;i++){
c=(char)('A'+Math.random()*26);
out.write(c);
System.out.print(c);
}
//关闭输出流out
out.close();
}catch(IOExceptione){
System.out.println(e);
}
}
}
[运行结果]
[实验结论与收获]
掌握创建文本文件并写入内容的方法。
实验题8
[实验要求]
•调试程序,比较两种实现多线程处理的方法。
•调试并记录结果。
[实验程序]
MyRunner程序:
classMyRunnerimplementsRunnable{
inti;
publicvoidrun(){
i=1;
while(true){
System.out.println("MyThread:
"+i++);
if(i==50)
{System.out.println("StopMyThread!
");break;}
}
}
}
MyThread程序
publicclassMyThreadextendsThread{
inti;
publicvoidrun(){
i=1;
while(true){
System.out.println("MyThread:
"+i++);
if(i==50)
{System.out.println("StopMyThread!
");break;}
}
}
publicstaticvoidmain(Stringargs[]){