自考JAVA语言程序设计(一)课后习题答案和源代码(第九章)演示教学

  • 格式:doc
  • 大小:382.50 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第九章

2.一个文本,一个按钮。在文本区中输入数据,点击按钮,将文本内容输出到文件。文件通过文件保存对话框制定。

程序运行结果:

保存文件的源文件: SaveFile.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

/**

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

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

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

*@author黎明你好

*/

public class SaveFile extends JFrame implements ActionListener

{

private static final long serialVersionUID = 1L;// 序列化时为了保持版本的兼容性

private JFileChooser fileChooser;// 文件选择对话框

private JPanel northPanel;// 布局用的

private JButton saveFileButton;// 保存按钮

private JLabel label;// 用来显示文件的绝对路径

private JTextArea textArea;// 文本框

public SaveFile()

{

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

label = new JLabel(" ");

fileChooser = new JFileChooser();

northPanel = new JPanel();

saveFileButton = new JButton("保存到文件");

textArea = new JTextArea();

textArea.setLineWrap(true);

saveFileButton.addActionListener(this);

northPanel.add(saveFileButton);

this.add(northPanel, BorderLayout.NORTH);

this.add(new JScrollPane(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();

}

public void actionPerformed(ActionEvent e) // 监听器方法

{

if (e.getSource() == saveFileButton)

{

int message = fileChooser.showSaveDialog(this);

if (message == JFileChooser.APPROVE_OPTION)

{

File file = fileChooser.getSelectedFile();

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

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

saveFile(file);

}

else

{

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

}

}

}

/**

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

*@param f-保存到的文件对象

*/

public void saveFile(File f)

{

try

{

FileWriter file = new FileWriter(f);

BufferedWriter out = new BufferedWriter(file);

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

textArea.getText().length());

out.close();

}

catch( Exception e )

{

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

}

}

public static void main(String[] args)

{

new SaveFile();

}

}

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

程序运行结果:

计算文件中的整数和源文件:FileIntegerSum.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.util.*;

/**

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

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

*@author黎明你好

*

*/

public class FileIntegerSum extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

private JButton buttonSave, buttonCount, buttonOpen;// 按钮:保存,计算,保存

private JTextArea textArea;//文本区

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

private JFileChooser filedialog;//文件选择对话框

private JPanel panel;//布局用的panel

private File file = null;//文件对象

public FileIntegerSum()

{

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

buttonOpen = new JButton("打开文件");

buttonSave = new JButton("保存到...");

buttonCount = new JButton("计算结果");

label = new JLabel(" ");

panel = new JPanel();

textArea = new JTextArea();

filedialog = new JFileChooser();

filedialog.addChoosableFileFilter(new MyFileFilter("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(new JScrollPane(textArea), BorderLayout.CENTER);