⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 texteditor4.java

📁 一个java编写的记事本
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package texteditor4;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.io.*;
import javax.swing.event.*;
import com.borland.dbswing.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class TextEditor4
    extends JFrame {
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();
  JMenuBar jMenuBar1 = new JMenuBar();
  JToolBar jToolBar1 = new JToolBar();
  JMenu jMenu1 = new JMenu();
  JMenuItem jMenuItem1 = new JMenuItem();
  JMenuItem jMenuItem2 = new JMenuItem();
  JMenuItem jMenuItem3 = new JMenuItem();
  JMenuItem jMenuItem4 = new JMenuItem();
  JMenuItem jMenuItem5 = new JMenuItem();
  JLabel jLabel1 = new JLabel();
  JScrollPane jScrollPane1 = new JScrollPane();
  JTextArea jTextArea1 = new JTextArea();

  String filename; //文件名
  boolean isSaved = false;
  Document document;
  JFileChooser jFileChooser1 = new JFileChooser();
  JMenu jMenu2 = new JMenu();
  JMenuItem jMenuItem6 = new JMenuItem();
  JMenuItem jMenuItem7 = new JMenuItem();
  FontChooser fontChooser1 = new FontChooser();
  JMenuItem jMenuItem8 = new JMenuItem();
  JButton jButton1 = new JButton();

  ImageIcon imageIcon1;
  ImageIcon imageIcon2;
  ImageIcon imageIcon3;
  ImageIcon imageIcon4;
  JButton jButton2 = new JButton();
  JButton jButton3 = new JButton();
  JButton jButton4 = new JButton();
  JMenu jMenu3 = new JMenu();
  JMenuItem jMenuItem9 = new JMenuItem();

  //Construct the frame
  public TextEditor4() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception {
    imageIcon1 = new ImageIcon(TextEditor4.class.getResource("new.gif"));
    imageIcon2 = new ImageIcon(TextEditor4.class.getResource("open.gif"));
    imageIcon3 = new ImageIcon(TextEditor4.class.getResource("save.gif"));
    imageIcon4 = new ImageIcon(TextEditor4.class.getResource("saveas.gif"));

    contentPane = (JPanel)this.getContentPane();
    contentPane.setLayout(borderLayout1);
    document = jTextArea1.getDocument();
    this.setSize(new Dimension(400, 300));
    this.setTitle("记事本");
    jMenu1.setText("文件");
    jMenuItem1.setText("新建");
    jMenuItem1.addActionListener(new TextEditor4_jMenuItem1_actionAdapter(this));
    jMenuItem2.setText("打开");
    jMenuItem2.addActionListener(new TextEditor4_jMenuItem2_actionAdapter(this));
    jMenuItem3.setText("保存");
    jMenuItem3.addActionListener(new TextEditor4_jMenuItem3_actionAdapter(this));
    jMenuItem4.setText("另存为");
    jMenuItem4.addActionListener(new TextEditor4_jMenuItem4_actionAdapter(this));
    jMenuItem5.setText("退出");
    jMenuItem5.addActionListener(new TextEditor4_jMenuItem5_actionAdapter(this));
    jTextArea1.setText("");
    jLabel1.setToolTipText("");
    jLabel1.setText(" ");
    document.addDocumentListener(new TextEditor4_document_documentAdapter(this));
    jMenu2.setText("设置");
    jMenuItem6.setText("设置前景色");
    jMenuItem6.addActionListener(new TextEditor4_jMenuItem6_actionAdapter(this));
    jMenuItem7.setText("设置背景色");
    jMenuItem7.addActionListener(new TextEditor4_jMenuItem7_actionAdapter(this));
    jMenuItem8.setText("设置字体");
    jMenuItem8.addActionListener(new TextEditor4_jMenuItem8_actionAdapter(this));
    jButton1.setToolTipText("new file");
    jButton1.setIcon(null);
    jButton1.setSelectedIcon(null);
    jButton1.setText("");
    jButton1.addActionListener(new TextEditor4_jButton1_actionAdapter(this));
    jButton2.setToolTipText("open file");
    jButton2.setVerifyInputWhenFocusTarget(true);
    jButton2.setText("");
    jButton2.addActionListener(new TextEditor4_jButton2_actionAdapter(this));
    jButton3.setToolTipText("save");
    jButton3.setText("");
    jButton3.addActionListener(new TextEditor4_jButton3_actionAdapter(this));
    jButton4.setToolTipText("save as");
    jButton4.setText("");
    jButton4.addActionListener(new TextEditor4_jButton4_actionAdapter(this));
    jButton1.setIcon(imageIcon1);
    jButton2.setIcon(imageIcon2);
    jButton3.setIcon(imageIcon3);
    jButton4.setIcon(imageIcon4);
    jMenu3.setText("帮助");
    jMenuItem9.setText("关于");
    jMenuItem9.addActionListener(new TextEditor4_jMenuItem9_actionAdapter(this));
    jMenuBar1.add(jMenu1);
    jMenuBar1.add(jMenu2);
    jMenuBar1.add(jMenu3);
    jMenu1.add(jMenuItem1);
    jMenu1.add(jMenuItem2);
    jMenu1.add(jMenuItem3);
    jMenu1.add(jMenuItem4);
    jMenu1.addSeparator();
    jMenu1.add(jMenuItem5);
    contentPane.add(jLabel1, BorderLayout.SOUTH);
    contentPane.add(jScrollPane1, BorderLayout.CENTER);
    contentPane.add(jToolBar1, BorderLayout.NORTH);
    jToolBar1.add(jButton1, null);
    jToolBar1.add(jButton2, null);
    jToolBar1.add(jButton3, null);
    jToolBar1.add(jButton4, null);
    jScrollPane1.getViewport().add(jTextArea1, null);
    jMenu2.add(jMenuItem6);
    jMenu2.add(jMenuItem7);
    jMenu2.addSeparator();
    jMenu2.add(jMenuItem8);
    jMenu3.add(jMenuItem9);
    this.setJMenuBar(jMenuBar1);
    fontChooser1.setFrame(this);
  }

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  public void newFile() { //创建新的文本文件
    if (toExit()) {
      jTextArea1.setText("");
      filename = null;
      isSaved = false;
      updateFileName();
      jLabel1.setText("新建文件:" + filename);
    }
  }

  boolean save() { //保存文件
    if (filename == null) { //如果文件名为空,则调用saveAs()方法
      return saveAs();
    }
    try {
      File file = new File(filename); //新建文件对象
      FileWriter out = new FileWriter(file);
      String text = jTextArea1.getText();
      out.write(text); //写文件
      out.close();
      this.isSaved = false; //将文件状态设为已保存
      jLabel1.setText("保存文件:" + filename);
      updateFileName(); //更新文件标题
      return true;
    }
    catch (Exception e) {
      jLabel1.setText("错误" + e);
    }
    return false;
  }

  boolean saveAs() { //文件另存为
    if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
      filename = jFileChooser1.getSelectedFile().getPath(); //获得文件路径
      return save(); //调用save()方法保存文件
    }
    else {
      return false;
    }
  }

  void updateFileName() { //更新标题文件名
    String str;
    if (filename == null) { //如果文件名为空,则标题名为Untitled
      str = "Untitled";
    }
    else {
      str = filename;
    }
    if (isSaved) {
      str = "记事本-" + str;
    }
    this.setTitle(str); //设置标题名
    this.repaint();
  }

  boolean toExit() { //是否能关闭当前文件
    if (!isSaved) { //如果文件没有改变则返回true
      return true;
    }
    int i = JOptionPane.showConfirmDialog(this, "是否保存文档?", "记事本",
                                          JOptionPane.YES_NO_CANCEL_OPTION);
    switch (i) {
      case JOptionPane.YES_OPTION: //如选择yes,则保存文件
        return save();
      case JOptionPane.NO_OPTION: //选择no,则不保存文件,退出
        return true;
      case JOptionPane.CANCEL_OPTION: //选择cancel,则退回原理状态
        return false;
      default:
        return false;
    }
  }

  void openFile() { //打开文件
    if (!toExit()) { //检查是否能关闭现在的文件
      return;
    }
    if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {
      try {
        String filename1 = jFileChooser1.getSelectedFile().getPath(); //获取文件路径
        File file = new File(filename1); //建立文件对象
        int size = (int) file.length(); //获取文件长度
        char[] data = new char[size]; //建立缓冲区
        FileReader in = new FileReader(file);
        int readChar = 0;
        while (in.ready()) { //读文件
          readChar = readChar + in.read(data, readChar, size - readChar);
        }
        in.close();
        String str = new String(data, 0, readChar);
        jTextArea1.setText(str); //设置文本域的内容
        filename = filename1;
        isSaved = false;
        jLabel1.setText("打开文件:" + filename);
        updateFileName(); //更新文件标题
      }
      catch (Exception err) {
        jLabel1.setText("错误:" + err);
      }

    }
    this.repaint();
  }

  void jMenuItem1_actionPerformed(ActionEvent e) {
    newFile(); //创建新文件
  }

  void jMenuItem2_actionPerformed(ActionEvent e) {
    openFile(); //打开文件
  }

  void jMenuItem3_actionPerformed(ActionEvent e) {
    save(); //保存文件
  }

  void jMenuItem4_actionPerformed(ActionEvent e) {
    saveAs(); //文件另存为
  }

  void jMenuItem5_actionPerformed(ActionEvent e) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -