怎么让文件的内容在textArea中显示出来?

时间:2022-06-12 10:42:40

 package javanotpad;

import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

public class MenuFrame extends JFrame implements ActionListener
{
 private static final long serialVersionUID = 201269579650631599L;
 private String filePath;

 @SuppressWarnings("static-access")
 public void initialize()
 {
  initMenuBar();
  this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  this.setTitle("Java ");// 设置窗口标题
  this.setSize(600, 700);// 设置窗口大小
  this.setLocationRelativeTo(null);// 设置窗口位置
  this.setVisible(true);// 设置窗口可见性
  this.add(new TextArea());// 文本编辑区域
 }

 @SuppressWarnings("static-access")
 public void initMenuBar()
 {
  JMenuBar menuBar = new JMenuBar();
  final JFileChooser fileChoose = new JFileChooser();
  FileFilter filter = new FileNameExtensionFilter("*.txt", "all file");

  // fileChoose.addChoosableFileFilter(filter);

  JMenu file, edit, view, search, document, tool, window, help;
  JMenuItem fileItem1, fileItem2, fileItem3, fileItem4, fileItem5, editItem1, editItem2, editItem3, helpItem1;

  file = new JMenu("文件(F)");// 文件菜单
  edit = new JMenu("编辑(E)");// 编辑菜单
  view = new JMenu("视图(V)");// 视图菜单
  search = new JMenu("搜索(S)");// 上搜菜单
  document = new JMenu("文档(D)");// 文档菜单
  tool = new JMenu("工具(T)");// 工具菜单
  window = new JMenu("窗口(W)");// 窗口菜单
  help = new JMenu("帮助(H)");// 帮助菜单

  // 文件菜单项
  fileItem1 = new JMenuItem("新建");
  fileItem2 = new JMenuItem("打开");
  fileItem3 = new JMenuItem("保存");
  fileItem4 = new JMenuItem("另存为");
  fileItem5 = new JMenuItem("退出");

  file.add(fileItem1);// 添加文件子菜单项,新建
  file.add(fileItem2);// 添加文件子菜单项,打开
  file.add(fileItem3);// 添加文件子菜单项,保存
  file.add(fileItem4);// 添加文件子菜单项,另存为
  file.add(fileItem5);// 添加文件子菜单项,退出

  // 编辑菜单项
  editItem1 = new JMenuItem("剪切");
  editItem2 = new JMenuItem("粘贴");
  editItem3 = new JMenuItem("复制");
  edit.add(editItem1);// 添加编辑子菜单项,剪切
  edit.add(editItem2);// 添加编辑子菜单项,粘贴
  edit.add(editItem3);// 添加编辑子菜单项,复制

  // 帮助菜单项
  helpItem1 = new JMenuItem("关于");
  help.add(helpItem1);// 添加帮助子菜单项,关于
  helpItem1.addActionListener(this);// 添加关于按钮的事件

  menuBar.add(file);// 添加文件菜单
  menuBar.add(edit);// 添加编辑菜单
  menuBar.add(view);// 添加视图菜单
  menuBar.add(search);// 添加搜索菜单
  menuBar.add(document);// 添加文档长度
  menuBar.add(tool);// 添加工具菜单
  menuBar.add(window);// 添加窗口
  menuBar.add(help);// 添加帮助菜单
  this.setJMenuBar(menuBar);// 添加菜单栏

  fileChoose.setFileFilter(filter);// 设置打开文件的类型

  fileItem2.addActionListener(new ActionListener()// 添加打开文件对话框事件
    {
     @Override
     public void actionPerformed(ActionEvent e)
     {
      int returnVal = fileChoose
        .showOpenDialog(MenuFrame.this);
      if (returnVal == fileChoose.APPROVE_OPTION)
      {
       filePath = fileChoose.getSelectedFile()
         .getAbsolutePath();
       try
       {
        readFile(filePath);
       } catch (FileNotFoundException e1)
       {
        e1.printStackTrace();
       }
      }
     }
    });

  fileItem3.addActionListener(new ActionListener()// 添加保存文件对话框
    {
     @Override
     public void actionPerformed(ActionEvent e)
     {
      int returnVal = fileChoose
        .showSaveDialog(MenuFrame.this);
      if (returnVal == fileChoose.APPROVE_OPTION)
      {
       filePath = fileChoose.getSelectedFile()
         .getAbsolutePath();
       try
       {
        writerFile(filePath);
       } catch (IOException e1)
       {
        e1.printStackTrace();
       }
      } else
      {
        JOptionPane.showMessageDialog(null,"文件将默认保存在:/r/n"+filePath,
        "提示",JOptionPane.INFORMATION_MESSAGE);
      }
     }
    });

  fileItem5.addActionListener(new ActionListener()// 添加退出程序事件
    {
     @Override
     public void actionPerformed(ActionEvent e)
     {
      System.exit(0);
     }
    });
 }

 @Override
 public void actionPerformed(ActionEvent e)// 关于菜单项信息
 {
   JOptionPane.showMessageDialog(null, "2009-5-4 11:01:29", "关于",
   JOptionPane.INFORMATION_MESSAGE);
//  JOptionPane.showInternalMessageDialog(null, "2009年5月5日17:22:47", "关于",
//    JOptionPane.INFORMATION_MESSAGE);
 }

 void readFile(String path) throws FileNotFoundException// 显示打开文件的内容
 {
  File f = new File(path);
  FileReader fr = new FileReader(f);
  BufferedReader br = new BufferedReader(fr);
  String s;
  try
  {
   s = br.readLine();
   while (s != null)
   {
    s += s;
    System.out.println(s);
    s = br.readLine();
   }

  } catch (IOException e)
  {
   e.printStackTrace();
  } finally
  {
   try
   {
    if (br != null)
    {
     br.close();
    }
   } catch (IOException e)
   {
    e.printStackTrace();
   }
   try
   {
    if (fr != null)
    {
     fr.close();
    }
   } catch (IOException e)
   {
    e.printStackTrace();
   }
  }
 }

 void writerFile(String path) throws IOException// 保存文件内容
 {
//  File file = new File(path);
//  FileWriter fw = new FileWriter(file);
//  BufferedWriter bw = new BufferedWriter(fw);

 }
}

相关文章