自考JAVA语言程序设计一课后习题答案和源代码第九章.docx

上传人:b****5 文档编号:7537677 上传时间:2023-01-24 格式:DOCX 页数:24 大小:313.25KB
下载 相关 举报
自考JAVA语言程序设计一课后习题答案和源代码第九章.docx_第1页
第1页 / 共24页
自考JAVA语言程序设计一课后习题答案和源代码第九章.docx_第2页
第2页 / 共24页
自考JAVA语言程序设计一课后习题答案和源代码第九章.docx_第3页
第3页 / 共24页
自考JAVA语言程序设计一课后习题答案和源代码第九章.docx_第4页
第4页 / 共24页
自考JAVA语言程序设计一课后习题答案和源代码第九章.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

自考JAVA语言程序设计一课后习题答案和源代码第九章.docx

《自考JAVA语言程序设计一课后习题答案和源代码第九章.docx》由会员分享,可在线阅读,更多相关《自考JAVA语言程序设计一课后习题答案和源代码第九章.docx(24页珍藏版)》请在冰豆网上搜索。

自考JAVA语言程序设计一课后习题答案和源代码第九章.docx

自考JAVA语言程序设计一课后习题答案和源代码第九章

第九章

2.一个文本,一个按钮。

在文本区中输入数据,点击按钮,将文本内容输出到文件。

文件通过文件保存对话框制定。

程序运行结果:

保存文件的源文件:

SaveFile.java

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.io.*;

/**

*9.2一个文本,一个按钮。


*在文本区中输入数据,点击按钮,将文本内容输出到文件。


*文件通过文件保存对话框制定。


*@author黎明你好

*/

publicclassSaveFileextendsJFrameimplementsActionListener

{

privatestaticfinallongserialVersionUID=1L;//序列化时为了保持版本的兼容性

privateJFileChooserfileChooser;//文件选择对话框

privateJPanelnorthPanel;//布局用的

privateJButtonsaveFileButton;//保存按钮

privateJLabellabel;//用来显示文件的绝对路径

privateJTextAreatextArea;//文本框

publicSaveFile()

{

super("第九章,第二题-保存文件");

label=newJLabel("");

fileChooser=newJFileChooser();

northPanel=newJPanel();

saveFileButton=newJButton("保存到文件");

textArea=newJTextArea();

textArea.setLineWrap(true);

saveFileButton.addActionListener(this);

northPanel.add(saveFileButton);

this.add(northPanel,BorderLayout.NORTH);

this.add(newJScrollPane(textArea),BorderLayout.CENTER);

this.add(label,BorderLayout.SOUTH);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setBounds(50,50,500,500);

this.setVisible(true);

this.validate();

}

publicvoidactionPerformed(ActionEvente)//监听器方法

{

if(e.getSource()==saveFileButton)

{

intmessage=fileChooser.showSaveDialog(this);

if(message==JFileChooser.APPROVE_OPTION)

{

Filefile=fileChooser.getSelectedFile();

label.setText("保存到:

"+file.getAbsolutePath());//在label上显示这个文件的绝对路径

this.setTitle(file.getName());//设置JFrame的title为文件的名字

saveFile(file);

}

else

{

label.setText("没有文件被选中");

}

}

}

/**

*把文本区上的内容保存到指定文件上

*@paramf-保存到的文件对象

*/

publicvoidsaveFile(Filef)

{

try

{

FileWriterfile=newFileWriter(f);

BufferedWriterout=newBufferedWriter(file);

out.write(textArea.getText(),0,textArea.getText().length());

out.close();

}

catch(Exceptione)

{

label.setText("写文件发生错误");

}

}

publicstaticvoidmain(String[]args)

{

newSaveFile();

}

}

3.在一个文件中,每行存的是整数,各行整数个数不等,要求读这个文件,然后计算每行整数的和,并存到另一个文件中。

程序运行结果:

计算文件中的整数和源文件:

FileIntegerSum.java

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.io.*;

importjava.util.*;

/**

*9.3在一个文件中,每行存的是整数,各行整数个数不等,

*要求读如这个文件,然后计算每行整数的和,并存到另一个文件中。


*@author黎明你好

*

*/

publicclassFileIntegerSumextendsJFrameimplementsActionListener

{

privatestaticfinallongserialVersionUID=1L;

privateJButtonbuttonSave,buttonCount,buttonOpen;//按钮:

保存,计算,保存

privateJTextAreatextArea;//文本区

privateJLabellabel;//显示当前文件的绝对路径的label

privateJFileChooserfiledialog;//文件选择对话框

privateJPanelpanel;//布局用的panel

privateFilefile=null;//文件对象

publicFileIntegerSum()

{

super("第九章,第三题-整数求和");

buttonOpen=newJButton("打开文件");

buttonSave=newJButton("保存到...");

buttonCount=newJButton("计算结果");

label=newJLabel("");

panel=newJPanel();

textArea=newJTextArea();

filedialog=newJFileChooser();

filedialog.addChoosableFileFilter(newMyFileFilter("txt"));

buttonOpen.addActionListener(this);

buttonSave.addActionListener(this);

buttonCount.addActionListener(this);//给按钮加监控

panel.add(buttonOpen);

panel.add(buttonCount);

panel.add(buttonSave);//把按钮添加到panel面板上

this.add(panel,BorderLayout.NORTH);

this.add(newJScrollPane(textArea),BorderLayout.CENTER);

this.add(label,BorderLayout.SOUTH);

this.setBounds(50,50,500,300);

this.validate();

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==buttonOpen)

{

filedialog.setDialogTitle("打开");

intresult=filedialog.showOpenDialog(this);

if(result==JFileChooser.APPROVE_OPTION)

{

file=filedialog.getSelectedFile();

label.setText(""+file.getAbsolutePath());

readFiletoText(file);

}

elseif(result==JFileChooser.CANCEL_OPTION)

label.setText("你没有选择任何文件\n");

}

if(e.getSource()==buttonSave)

{

filedialog.setDialogTitle("另存为");

intresult=filedialog.showSaveDialog(this);

if(result==JFileChooser.APPROVE_OPTION)

{

file=filedialog.getSelectedFile();

label.setText(""+file.getAbsolutePath());

saveAsText(file);

}

elseif(result==JFileChooser.CANCEL_OPTION)

{

label.setText("你没有选择任何文件\n");

}

}

if(e.getSource()==buttonCount)

{

textArea.setText(null);

if(this.file!

=null)

countResult(file);

}

}

/**

*将指定的文件显示在文本区上

*@paramfile-指定的文件

*/

publicvoidreadFiletoText(Filefile)

{

try

{

FileReaderfile_reader=newFileReader(file);

BufferedReaderin=newBufferedReader(file_reader);

Stringss=newString();

while((ss=in.readLine())!

=null)

{

textArea.append(ss+'\n');

}

in.close();

}

catch(FileNotFoundExceptione2)

{

label.setText("文件没有找到\n");

}

catch(IOExceptione3)

{

e3.printStackTrace();

}

textArea.setCaretPosition(0);

}

/**

*将文本区内容保存到指定文件

*@paramfile-指定的文件

*/

publicvoidsaveAsText(Filefile)

{

try

{

FileWriterfile_writer=newFileWriter(file);

BufferedWriterout=newBufferedWriter(file_writer);

out.write(textArea.getText(),0,(textArea.getText().length()));

out.flush();

out.close();

}

catch(FileNotFoundExceptione2)

{

label.setText("文件没有找到\n");

}

catch(IOExceptione3)

{

}

}

/**

*计算指定文件上,每行整数之和,并显示在文本区上

*@paramfile-指定的文件

*/

publicvoidcountResult(Filefile)

{

try

{

FileReaderfile_reader=newFileReader(file);

BufferedReaderin=newBufferedReader(file_reader);

Stringtemp=newString();

while((temp=in.readLine())!

=null)

{

intnumber=0;

StringTokenizertoken=newStringTokenizer(temp,",.");

while(token.hasMoreTokens())

{

number+=Integer.parseInt(token.nextToken());

}

textArea.append(temp+"---------相加结果是:

"+number+'\n');

}

in.close();

}

catch(Exceptione2)

{

label.setText("error"+e2+'\n');

}

}

publicstaticvoidmain(Stringargs[])

{

newFileIntegerSum();

}

}

4.在一个文本区中输入数据,把输入的数据分析成各个单词,然后排序显示到第二个文本区中,并通过文件保存对话框保存到文件中。

程序运行结果:

源文件:

SortString.java

importjava.awt.*;

importjava.awt.event.*;

importjava.util.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjava.io.*;

/**

*9.4在一个文本区中输入数据,把输入的数据分析成各个单词,

*然后排序显示到第二个文本区中,并通过文件保存对话框保存到文件中.

*@author黎明你好

*/

publicclassSortStringextendsJFrameimplementsCaretListener,ActionListener

{

privatestaticfinallongserialVersionUID=1L;

privateJTextAreainput_text;//用于输入的文本区

privateJTextAreashowResult_text2;//显示排序后的文本区

privateJButtonclear_button,save_button;//按钮:

清空,保存

privateJFileChooserfiledialog;//文件选择对话框

privateJLabellabel;

privateJPanelpanel1,panel2;

publicSortString()

{

super("第九章,第四题-排序");

filedialog=newJFileChooser();

input_text=newJTextArea("",15,30);

showResult_text2=newJTextArea("",15,30);

clear_button=newJButton("清空");

save_button=newJButton("保存到...");

panel1=newJPanel();

panel2=newJPanel();

label=newJLabel("");

input_text.setLineWrap(true);

showResult_text2.setEditable(false);

input_text.addCaretListener(this);

clear_button.addActionListener(this);

save_button.addActionListener(this);

panel1.add(clear_button);

panel1.add(save_button);

panel2.add(newJScrollPane(input_text));

panel2.add(newJScrollPane(showResult_text2));

this.add(panel1,BorderLayout.NORTH);

this.add(panel2,BorderLayout.CENTER);

this.add(label,BorderLayout.SOUTH);

this.setBounds(20,20,700,400);

this.validate();

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

publicvoidcaretUpdate(CaretEvente)

{

Stringstring=input_text.getText();

StringTokenizerfenxi=newStringTokenizer(string,"();:

.,.,'\n''\t'");

intn=fenxi.countTokens();

StringarrayStr[]=newString[n];

for(inti=0;i

{

Stringtemp=fenxi.nextToken();

arrayStr[i]=temp;

}

Arrays.sort(arrayStr);//排序

showResult_text2.setText(null);

for(inti=0;i

{

showResult_text2.append(arrayStr[i]+"\n");

}

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==clear_button)

{

input_text.setText(null);

}

if(e.getSource()==save_button)

{

filedialog.setDialogTitle("另存为");

intresult=filedialog.showSaveDialog(this);

if(result==JFileChooser.APPROVE_OPTION)

{

Filefile=filedialog.getSelectedFile();

label.setText(""+file.getAbsolutePath());

saveAsText(file);

}

}

}

/**

*把文本区上的内容保存到指定文件上

*@paramf-保存到的文件对象

*/

publicvoidsaveAsText(Filefile)

{

try

{

FileWriterfile_writer=newFileWriter(file);

BufferedWriterout=newBufferedWriter(file_writer);

out.write(showResult_text2.getText(),0,(showResult_text2.getText().length()));

out.flush();

out.close();

}

catch(FileNotFoundExceptione2)

{

label.setText("文件没有找到");

}

catch(IOExceptione3)

{

e3.printStackTrace();

}

}

publicstaticvoidmain(Stringargs[])

{

newSortString();

}

}

5.在一个文本区中输入数据,将文本区中的数据存入文件中,在又用户指定的序号,程序从文件中读取对应序号数据,输出到文本框中。

程序运行结果:

源文件:

Work9_5.java

importjava.awt.BorderLayout;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.*;

/**

*9.5在一个文本区中输入数据,将文本区中的数据存入文件中

*在又用户指定的序号,程序从文件中读取对应序号数据,输出到文本框中。


*@author黎明你好

*/

 

publicclassWork9_5extendsJFrame

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1