自考JAVA语言程序设计(一)课后习题答案和源代码(第九章)演示教学
- 格式:doc
- 大小:382.50 KB
- 文档页数:13
第九章
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);