自考JAVA语言程序设计一课后习题复习资料和源代码第九章.docx
- 文档编号:28737830
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:27
- 大小:310.85KB
自考JAVA语言程序设计一课后习题复习资料和源代码第九章.docx
《自考JAVA语言程序设计一课后习题复习资料和源代码第九章.docx》由会员分享,可在线阅读,更多相关《自考JAVA语言程序设计一课后习题复习资料和源代码第九章.docx(27页珍藏版)》请在冰豆网上搜索。
自考JAVA语言程序设计一课后习题复习资料和源代码第九章
第九章
2.一个文本,一个按钮。
在文本区中输入数据,点击按钮,将文本内容输出到文件。
文件通过文件保存对话框制定。
程序运行结果:
保存文件的源文件:
Save
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
/**
*9.2一个文本,一个按钮。
*在文本区中输入数据,点击按钮,将文本内容输出到文件。
*文件通过文件保存对话框制定。
*@author黎明你好
*/
publicclassSaveJFrameimplementsActionListener
{
privatestaticfinallongserialVersionUID=1L;//序列化时为了保持版本的兼容性
privateJ;//文件选择对话框
privateJPanelnorthPanel;//布局用的
privateJButtonsave;//保存按钮
privateJLabellabel;//用来显示文件的绝对路径
privateJTextAreatextArea;//文本框
publicSaveFile()
{
super("第九章,第二题-保存文件");
label=newJLabel("");
=newJ();
northPanel=newJPanel();
save=newJButton("保存到文件");
textArea=newJTextArea();
textArea.setLineWrap(true);
save.addActionListener(this);
northPanel.add(save);
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()==save)
{
intmessage=.showSaveDialog(this);
if(message==J.APPROVE_OPTION)
{
=.getSelectedFile();
label.setText("保存到:
"+());//在label上显示这个文件的绝对路径
this.setTitle(());//设置JFrame的title为文件的名字
save);
}
else
{
label.setText("没有文件被选中");
}
}
}
/**
*把文本区上的内容保存到指定文件上
*@paramf-保存到的文件对象
*/
publicvoidsavef)
{
try
{
file=new(f);
BufferedWriterout=newBufferedWriter(file);
out.write(textArea.getText(),0,textArea.getText().length());
out.close();
}
catch(Exceptione)
{
label.setText("写文件发生错误");
}
}
publicstaticvoidmain(String[]args)
{
newSaveFile();
}
}
3.在一个文件中,每行存的是整数,各行整数个数不等,要求读这个文件,然后计算每行整数的和,并存到另一个文件中。
程序运行结果:
计算文件中的整数和源文件:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
/**
*9.3在一个文件中,每行存的是整数,各行整数个数不等,
*要求读如这个文件,然后计算每行整数的和,并存到另一个文件中。
*@author黎明你好
*
*/
publicclassextendsJFrameimplementsActionListener
{
privatestaticfinallongserialVersionUID=1L;
privateJButtonbuttonSave,buttonCount,buttonOpen;//按钮:
保存,计算,保存
privateJTextAreatextArea;//文本区
privateJLabellabel;//显示当前文件的绝对路径的label
privateJ;//文件选择对话框
privateJPanelpanel;//布局用的panel
private=null;//文件对象
public()
{
super("第九章,第三题-整数求和");
buttonOpen=newJButton("打开文件");
buttonSave=newJButton("保存到...");
buttonCount=newJButton("计算结果");
label=newJLabel("");
panel=newJPanel();
textArea=newJTextArea();
=newJ();
.addChoosable(newMy("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)
{
.setDialogTitle("打开");
intresult=.showOpenDialog(this);
if(result==J.APPROVE_OPTION)
{
file=.getSelectedFile();
label.setText(""+());
read(file);
}
elseif(result==J.CANCEL_OPTION)
label.setText("你没有选择任何文件\n");
}
if(e.getSource()==buttonSave)
{
.setDialogTitle("另存为");
intresult=.showSaveDialog(this);
if(result==J.APPROVE_OPTION)
{
file=.getSelectedFile();
label.setText(""+());
saveAsText(file);
}
elseif(result==J.CANCEL_OPTION)
{
label.setText("你没有选择任何文件\n");
}
}
if(e.getSource()==buttonCount)
{
textArea.setText(null);
if(this.null)
countResult(file);
}
}
/**
*将指定的文件显示在文本区上
*@paramfile-指定的文件
*/
publicvoidread()
{
try
{
=new(file);
BufferedReaderin=newBufferedReader();
Stringss=newString();
while((ss=in.readLine())!
=null)
{
textArea.append(ss+'\n');
}
in.close();
}
catch(e2)
{
label.setText("文件没有找到\n");
}
catch(IOExceptione3)
{
e3.printStackTrace();
}
textArea.setCaretPosition(0);
}
/**
*将文本区内容保存到指定文件
*@paramfile-指定的文件
*/
publicvoidsaveAsText()
{
try
{
=new(file);
BufferedWriterout=newBufferedWriter();
out.write(textArea.getText(),0,(textArea.getText().length()));
out.flush();
out.close();
}
catch(e2)
{
label.setText("文件没有找到\n");
}
catch(IOExceptione3)
{
}
}
/**
*计算指定文件上,每行整数之和,并显示在文本区上
*@paramfile-指定的文件
*/
publicvoidcountResult()
{
try
{
=new(file);
BufferedReaderin=newBufferedReader();
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[])
{
new();
}
}
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;//按钮:
清空,保存
privateJ;//文件选择对话框
privateJLabellabel;
privateJPanelpanel1,panel2;
publicSortString()
{
super("第九章,第四题-排序");
=newJ();
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) { .setDialogTitle("另存为"); intresult=.showSaveDialog(this); if(result==J.APPROVE_OPTION) { =.getSelectedFile(); label.setText(""+()); saveAsText(file); } } } /** *把文本区上的内容保存到指定文件上 *@paramf-保存到的文件对象 */ publicvoidsaveAsText() { try { =new(file); BufferedWriterout=newBufferedWriter(); out.write(showResult_text2.getText(),0,(showResult_text2.getText().length())); out.flush(); out.close(); } catch(e2) { 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_5extendsJFrameimplementsActionListener,ItemListener { privatestaticfinallongserialVersionUID=1L; privateJButtonbuttonSave;//保存文件 privateJComboBoxcombo;//组合框,用来选择指定序号 privateJTextAreainput_textArea;//文本区,输入数据 privateJTextFieldshow_textField;//显示数据的文本框 privateJ;//文件选择对话框 privateJLabellabel;//显示当前文件的绝对路径 privateJPanelpanel; privateStringstringArray[]=newString[100]; private; publicWork9_5() { super("第九章,第五题"); buttonSave=newJButton("保存到文件"); combo=newJComboBox(); panel=newJPanel(); label=newJLabel(""); input_textArea=newJTextArea(); show_textField=newJTextField(30); =newJ(); input_textArea.setLineWrap(true); buttonSave.addActionListener(this); combo.addItemListener(this); panel.add(buttonSave); panel.add(combo); panel.add(show_textField);//把按钮,check添加到panel面板上 this.add(panel,BorderLayout.NORTH); this.add(newJScrollPane(input_textArea),BorderLayout.CENTER); this.add(label,BorderLayout.SOUTH); this.setBounds(50,50,600,300); this.validate(); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==buttonSave) { .setDialogTitle("另存为"); intresult=.showSaveDialog(this); if(result==J.APPROVE_OPTION) { file=.getSelectedFile(); label.setText(""+()); saveAsText(file); } elseif(result==J.CANCEL_OPTION) { label.setText("你没有选择任何文件"); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 JAVA 语言程序设计 课后 习题 复习资料 源代码 第九