天天看点

简单记事本

package com.dream.notepad;

import java.awt.BorderLayout;

import java.awt.Toolkit;

import java.awt.datatransfer.Clipboard;

import java.awt.datatransfer.DataFlavor;

import java.awt.datatransfer.StringSelection;

import java.awt.datatransfer.Transferable;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileDescriptor;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.SwingUtilities;

public class Notepad extends JFrame implements ActionListener{

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JMenuBar MB = null;

 private JMenu M1 = null;

 private JMenu M2 = null;

 private JMenu M3 = null;

 private JMenu M4 = null;

 private JMenu M5 = null;

 private JMenuItem MI11 = null;

 private JMenuItem MI12 = null;

 private JMenuItem MI21 = null;

 private JMenuItem MI22 = null;

 private JMenuItem MI51 = null;

 private JTextArea TA = null;

 Toolkit toolKit = Toolkit.getDefaultToolkit();

    Clipboard clipboard = toolKit.getSystemClipboard();  //  @jve:decl-index=0:

 /**

  * This method initializes MB 

  *  

  * @return javax.swing.JMenuBar 

  */

 private JMenuBar getMB() {

  if (MB == null) {

   MB = new JMenuBar();

   MB.add(getM1());

   MB.add(getM2());

   MB.add(getM3());

   MB.add(getM4());

   MB.add(getM5());

  }

  return MB;

 }

  * This method initializes M1 

  * @return javax.swing.JMenu 

 private JMenu getM1() {

  if (M1 == null) {

   M1 = new JMenu();

   M1.setText("文件(F)");

   M1.add(getMI11());

   M1.add(getMI12());

   M1.addActionListener((ActionListener) this);

  return M1;

  * This method initializes M2 

 private JMenu getM2() {

  if (M2 == null) {

   M2 = new JMenu();

   M2.setText("编辑(E)");

   M2.add(getMI21());

   M2.add(getMI22());

  return M2;

  * This method initializes M3 

 private JMenu getM3() {

  if (M3 == null) {

   M3 = new JMenu();

   M3.setText("格式(O)");

  return M3;

  * This method initializes M4 

 private JMenu getM4() {

  if (M4 == null) {

   M4 = new JMenu();

   M4.setText("查看(V)");

  return M4;

  * This method initializes M5 

 private JMenu getM5() {

  if (M5 == null) {

   M5 = new JMenu();

   M5.setText("帮助(H)");

   M5.add(getMI51());

  return M5;

  * This method initializes MI11 

  * @return javax.swing.JMenuItem 

 private JMenuItem getMI11() {

  if (MI11 == null) {

   MI11 = new JMenuItem();

   MI11.setText("打开(O)");

   MI11.addActionListener(this);

  return MI11;

  * This method initializes MI12 

 private JMenuItem getMI12() {

  if (MI12 == null) {

   MI12 = new JMenuItem();

   MI12.setText("保存(S)");

   MI12.addActionListener(this);

  return MI12;

  * This method initializes MI21 

 private JMenuItem getMI21() {

  if (MI21 == null) {

   MI21 = new JMenuItem();

   MI21.setText("复制(C)");

   MI21.addActionListener(this);

  return MI21;

  * This method initializes MI22 

 private JMenuItem getMI22() {

  if (MI22 == null) {

   MI22 = new JMenuItem();

   MI22.setText("粘贴(P)");

   MI22.addActionListener(this);

  return MI22;

  * This method initializes MI51 

 private JMenuItem getMI51() {

  if (MI51 == null) {

   MI51 = new JMenuItem();

   MI51.setText("关于(A)");

   MI51.addActionListener(this);

  return MI51;

  * This method initializes TA 

  * @return javax.swing.JTextArea 

 private JTextArea getTA() {

  if (TA == null) {

   TA = new JTextArea();

  return TA;

  * @param args

 public static void main(String[] args) {

  // TODO 自动生成方法存根

  SwingUtilities.invokeLater(new Runnable() {

   public void run() {

    Notepad thisClass = new Notepad();

    thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    thisClass.setVisible(true);

   }

  });

  * This is the default constructor

 public Notepad() {

  super();

  initialize();

  * This method initializes this

  *

  * @return void

 private void initialize() {

  this.setSize(450, 360);

  this.setJMenuBar(getMB());

  this.setContentPane(getJContentPane());

  this.setTitle("Notepad");

  * This method initializes jContentPane

  * @return javax.swing.JPanel

 private JPanel getJContentPane() {

  if (jContentPane == null) {

   jContentPane = new JPanel();

   jContentPane.setLayout(new BorderLayout());

   jContentPane.add(getTA(), BorderLayout.CENTER);

  return jContentPane;

 public void actionPerformed(ActionEvent e) {

  if(e.getActionCommand().equals("打开(O)")){

   JFileChooser fc=new JFileChooser();

   fc.setDialogTitle("打开文件");

   fc.showOpenDialog(null);

   String filename=fc.getSelectedFile().getAbsolutePath();

   FileReader fr=null;

   BufferedReader br=null;

   try{

    fr=new FileReader(filename);

    br=new BufferedReader(fr);

    String s="";

    String all="";

    while((s=br.readLine())!=null){

     all+=s+"\r\n";

    }

    TA.setText(all);

   catch(Exception ex){

    ex.printStackTrace();

   finally{

    try{

     br.close();

     fr.close();

    catch(Exception exe){

  else if(e.getActionCommand().equals("保存(S)")){

   JFileChooser fc1=new JFileChooser();

   fc1.setDialogTitle("另存为");

   fc1.showOpenDialog(null);

   String filename=fc1.getSelectedFile().getAbsolutePath();

   FileWriter fw=null;

   BufferedWriter bw=null;

    fw=new FileWriter(filename);

    bw=new BufferedWriter(fw);

    bw.write(TA.getText());

    try {

     bw.close();

     fw.close();

    } catch (IOException ex) {

     // TODO 自动生成 catch 块

     ex.printStackTrace();

  else if(e.getActionCommand().equals("关于(A)")){

   About aa=new About(this,"ss");

   aa.setModal(true);

   aa.setVisible(true);

            //fc2.showOpenDialog(null);

        }

  else if(e.getActionCommand().equals("复制(C)")){

   String s = TA.getSelectedText();

      StringSelection st= new StringSelection(s);

      clipboard.setContents(st,null);

  else if(e.getActionCommand().equals("粘贴(P)")){

    Transferable tf = clipboard.getContents(this);

       if(tf==null)

       return;

       String s="";

       try{

         s = (String)tf.getTransferData(DataFlavor.stringFlavor);

       }

       catch(Exception ex){

         ex.printStackTrace();

       TA.replaceRange(s,TA.getSelectionStart(),TA.getSelectionEnd()); 

         }

}

//创建关于Dialog

public class About extends JDialog {

 private JLabel LB1 = null;

  * @param owner

 public About(Frame owner) {

  super(owner);

 public About(Notepad notepad, String string) {

  // TODO 自动生成构造函数存根

  super(notepad,string);

  this.setSize(300, 200);

  this.setTitle("关于记事本");