自考JAVA语言程序设计(一)课后习题答案和源代码(第九章)_第1页
自考JAVA语言程序设计(一)课后习题答案和源代码(第九章)_第2页
自考JAVA语言程序设计(一)课后习题答案和源代码(第九章)_第3页
自考JAVA语言程序设计(一)课后习题答案和源代码(第九章)_第4页
自考JAVA语言程序设计(一)课后习题答案和源代码(第九章)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章2.一个文本,一个按钮。在文本区中输入数据,点击按钮,将文本内容输出到文件。文件通过文件保存对话框制定。程序运行结果:保存文件的源文件: SaveFile.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;/* * 9.2 一个文本,一个按钮。 * 在文本区中输入数据,点击按钮,将文本内容输出到文件。 * 文件通过文件保存对话框制定。 * author 黎明你好 */public class SaveFile extends JFrame implements ActionListenerprivate 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);elselabel.setText(没有文件被选中);/* * 把文本区上的内容保存到指定文件上 * param f - 保存到的文件对象 */public void saveFile(File f)tryFileWriter 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.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;/* * 9.3 在一个文件中,每行存的是整数,各行整数个数不等, * 要求读如这个文件,然后计算每行整数的和,并存到另一个文件中。 * author 黎明你好 * */public class FileIntegerSum extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L;private JButton buttonSave, buttonCount, buttonOpen;/ 按钮:保存,计算,保存private JTextArea textArea;/文本区private JLabel label;/显示当前文件的绝对路径的labelprivate JFileChooser filedialog;/文件选择对话框private JPanel panel;/布局用的panelprivate 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);this.add(label, BorderLayout.SOUTH);this.setBounds(50, 50, 500, 300);this.validate();this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actionPerformed(ActionEvent e)if (e.getSource() = buttonOpen)filedialog.setDialogTitle(打开);int result = filedialog.showOpenDialog(this);if (result = JFileChooser.APPROVE_OPTION)file = filedialog.getSelectedFile();label.setText( + file.getAbsolutePath();readFiletoText(file);else if (result = JFileChooser.CANCEL_OPTION)label.setText(你没有选择任何文件n);if (e.getSource() = buttonSave)filedialog.setDialogTitle(另存为);int result = filedialog.showSaveDialog(this);if (result = JFileChooser.APPROVE_OPTION)file = filedialog.getSelectedFile();label.setText( + file.getAbsolutePath();saveAsText(file);else if (result = JFileChooser.CANCEL_OPTION)label.setText(你没有选择任何文件n);if (e.getSource() = buttonCount)textArea.setText(null);if (this.file != null)countResult(file);/* * 将指定的文件显示在文本区上 * param file - 指定的文件 */public void readFiletoText(File file)tryFileReader file_reader = new FileReader(file);BufferedReader in = new BufferedReader(file_reader);String ss = new String();while (ss = in.readLine() != null)textArea.append(ss + n);in.close();catch( FileNotFoundException e2 )label.setText(文件没有找到n);catch( IOException e3 )e3.printStackTrace();textArea.setCaretPosition(0);/* * 将文本区内容保存到指定文件 * param file - 指定的文件 */public void saveAsText(File file)tryFileWriter file_writer = new FileWriter(file);BufferedWriter out = new BufferedWriter(file_writer);out.write(textArea.getText(), 0, (textArea.getText().length();out.flush();out.close();catch( FileNotFoundException e2 )label.setText(文件没有找到n);catch( IOException e3 )/* * 计算指定文件上,每行整数之和,并显示在文本区上 * param file - 指定的文件 */public void countResult(File file)tryFileReader file_reader = new FileReader(file);BufferedReader in = new BufferedReader(file_reader);String temp = new String();while (temp = in.readLine() != null)int number = 0;StringTokenizer token = new StringTokenizer(temp, ,.);while (token.hasMoreTokens()number += Integer.parseInt(token.nextToken();textArea.append(temp + -相加结果是: + number + n);in.close();catch( Exception e2 )label.setText(error + e2 + n);public static void main(String args)new FileIntegerSum();4.在一个文本区中输入数据,把输入的数据分析成各个单词,然后排序显示到第二个文本区中,并通过文件保存对话框保存到文件中。程序运行结果:源文件: SortString.javaimport java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import javax.swing.event.*;import java.io.*;/* * 9.4 在一个文本区中输入数据,把输入的数据分析成各个单词, * 然后排序显示到第二个文本区中,并通过文件保存对话框保存到文件中. * author 黎明你好 */public class SortString extends JFrame implements CaretListener, ActionListenerprivate static final long serialVersionUID = 1L;private JTextArea input_text;/ 用于输入的文本区private JTextArea showResult_text2;/ 显示排序后的文本区private JButton clear_button, save_button;/ 按钮:清空,保存private JFileChooser filedialog;/ 文件选择对话框private JLabel label;private JPanel panel1, panel2;public SortString()super(第九章,第四题 - 排序);filedialog = new JFileChooser();input_text = new JTextArea( , 15, 30);showResult_text2 = new JTextArea( , 15, 30);clear_button = new JButton(清 空);save_button = new JButton(保存到.);panel1 = new JPanel();panel2 = new JPanel();label = new JLabel( );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(new JScrollPane(input_text);panel2.add(new JScrollPane(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);public void caretUpdate(CaretEvent e)String string = input_text.getText();StringTokenizer fenxi = new StringTokenizer(string, ();:.,.,nt);int n = fenxi.countTokens();String arrayStr = new Stringn;for (int i = 0; i n; i+)String temp = fenxi.nextToken();arrayStri = temp;Arrays.sort(arrayStr);/ 排序showResult_text2.setText(null);for (int i = 0; i arrayStr.length; i+)showResult_text2.append(arrayStri + n);public void actionPerformed(ActionEvent e)if (e.getSource() = clear_button)input_text.setText(null);if (e.getSource() = save_button)filedialog.setDialogTitle(另存为);int result = filedialog.showSaveDialog(this);if (result = JFileChooser.APPROVE_OPTION)File file = filedialog.getSelectedFile();label.setText( + file.getAbsolutePath();saveAsText(file);/* * 把文本区上的内容保存到指定文件上 * param f - 保存到的文件对象 */public void saveAsText(File file)tryFileWriter file_writer = new FileWriter(file);BufferedWriter out = new BufferedWriter(file_writer);out.write(showResult_text2.getText(), 0, (showResult_text2.getText().length();out.flush();out.close();catch( FileNotFoundException e2 )label.setText(文件没有找到);catch( IOException e3 )e3.printStackTrace();public static void main(String args)new SortString();5.在一个文本区中输入数据,将文本区中的数据存入文件中,在又用户指定的序号,程序从文件中读取对应序号数据,输出到文本框中。程序运行结果:源文件:Work9_5.javaimport java.awt.BorderLayout;import java.awt.event.*;import java.io.*;import javax.swing.*;/* * 9.5 在一个文本区中输入数据,将文本区中的数据存入文件中 * 在又用户指定的序号,程序从文件中读取对应序号数据,输出到文本框中。 * author 黎明你好 */public class Work9_5 extends JFrame implements ActionListener, ItemListenerprivate static final long serialVersionUID = 1L;private JButton buttonSave;/保存文件private JComboBox combo;/组合框,用来选择指定序号private JTextArea input_textArea;/文本区,输入数据private JTextField show_textField;/显示数据的文本框private JFileChooser filedialog;/文件选择对话框private JLabel label;/显示当前文件的绝对路径private JPanel panel;private String stringArray = new String100;private File file;public Work9_5()super(第九章,第五题);buttonSave = new JButton(保存到文件);combo = new JComboBox();panel = new JPanel();label = new JLabel( );input_textArea = new JTextArea();show_textField = new JTextField(30);filedialog = new JFileChooser();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(new JScrollPane(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);public void actionPerformed(ActionEvent e)if (e.getSource() = buttonSave)filedialog.setDialogTitle(另存为);int result = filedialog.showSaveDialog(this);if (result = JFileChooser.APPROVE_OPTION)file = filedialog.getSelectedFile();label.setText( + file.getAbsolutePath();saveAsText(file);else if (result = JFileChooser.CANCEL_OPTION)label.setText(你没有选择任何文件);public void itemStateChanged(ItemEvent e)int i = combo.getSelectedIndex();show_textField.setText(stringArrayi);System.out.println( + i);/* * 把文本区上的内容保存到指定文件上 * param f - 保存到的文件对象 */public void saveAsText(File file)tryFileWriter file_writer = new FileWriter(file);BufferedWriter out = new BufferedWriter(file_writer);out.write(input_textArea.getText(), 0, (input_textArea.getText().length();out.flush();out.close();readFile(file);catch( FileNotFoundException e )label.setText(文件没有找到);catch( IOException e )e.printStackTrace();/* * 按行读取文件,并保存, * param file - 指定的文件 */public void readFile(File file)tryFileReader file_reader = new FileReader(file);BufferedReader in = new BufferedReader(file_reader);String ss = new String();int i = 0;while (ss = in.readLine() != null)combo.addItem(第 + (i + 1) + 行);stringArrayi = ss;i+;show_textField.setText(stringArray0);in.close();catch( FileNotFoundException e )label.setText(文件没有找到);catch( IOException e )e.printStackTrace();public static void main(String args)new Work9_5();6.一个文本区,一个按钮,点击按钮选择文件,然后又把文件中的内容输入到文本区中。程序运行结果:打开文件原文件:OpenAndShowFile.javaimport java.awt.BorderLayout;import java.awt.event.*;import java.io.*;import javax.swing.*;/* *9.6 一个文本区,一个按钮,点击按钮选择文件,然后又把文件中的内容输入到文本区中。 * author 黎明你好 */public class OpenAndShowFile extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L;/ 序列化时为了保持版本的兼容性private JFileChooser fileChooser;/ 文件选择对话框private JPanel northPanel;/ 用于布局的panelprivate JButton openFileButton;/ 打开文件的按钮private JLabel label;/ 用来显示文件绝对路径private JTextArea textArea;/ 文本区,来显示文件内容private File file = null;public OpenAndShowFile()super(打开并显示文件);label = new JLabel();fileChooser = new JFileChooser();northPanel = new JPanel();openFileButton = new JButton(打开文件);textArea = new JTextArea();openFileButton.addActionListener(this);northPanel.add(openFileButton);/ 添加文件筛选,扩展内容,请保证MyFileFilter类的存在fileChooser.addChoosableFileFilter(new MyFileFilter(java);fileChooser.addChoosableFileFilter(new MyFileFilter(txt);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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论