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

📄 源代码.txt

📁 用JAva 写的一个简单记事本的源代码,和大家一起学习参考.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
package texteditor;
//导入所需包
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.dbswing.*;
import java.io.*;
import javax.swing.text.*;
import javax.swing.event.*;
import java.awt.print.*;
import javax.swing.JPanel;
import javax.swing.JFrame;
import com.borland.jbcl.layout.*;

/**
 * <p>Title:钦钦记事本 </p>
 * <p>Description: 仿照windows的记事本</p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company:异度空间 </p>
 * @author not attributable
 * @version 1.0
 */

//新建这种对象
public class Frame1 extends JFrame {
  JPanel contentPane;
  File file=null;
  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jMenuFile = new JMenu();
  JMenuItem jMenuFileExit = new JMenuItem();
  JMenu jMenuHelp = new JMenu();
  JMenuItem jMenuHelpAbout = new JMenuItem();
  JPanel jPanel1 = new JPanel();
  JScrollPane jScrollPane1 = new JScrollPane();
  JTextArea jTextArea1 = new JTextArea();
  JMenuItem jMenuItem1 = new JMenuItem();
  JMenuItem jMenuItem2 = new JMenuItem();
  JMenuItem jMenuItem3 = new JMenuItem();
  JMenuItem jMenuItem4 = new JMenuItem();
  JMenuItem jMenuItem5 = new JMenuItem();
  JMenuItem jMenuItem6 = new JMenuItem();
  JMenuItem jMenuItem7 = new JMenuItem();
  JMenuItem jMenuItem9 = new JMenuItem();
  JMenuItem jMenuItem10 = new JMenuItem();
  JMenuItem jMenuItem11 = new JMenuItem();
  JMenuItem jMenuItem8 = new JMenuItem();
  JMenuItem jMenuItem12 = new JMenuItem();
  JMenuItem jMenuItem13 = new JMenuItem();
  JMenuItem jMenuItem14 = new JMenuItem();
  JMenuItem jMenuItem15 = new JMenuItem();
  JMenu jMenu1 = new JMenu();
  JMenu jMenu2 = new JMenu();
  JPanel jPanel2 = new JPanel();
  JLabel jLabel1 = new JLabel();
  JLabel jLabel2 = new JLabel();
  JLabel jLabel3 = new JLabel();
  FontChooser fontChooser1 = new FontChooser();
  JFileChooser jFileChooser1 = new JFileChooser();
  String currentFileName = null;
  boolean motified = false;
  Document document1;
  PrinterJob ptr = PrinterJob.getPrinterJob();
  Toolkit tk = Toolkit.getDefaultToolkit();
  ImageIcon newfile = new ImageIcon("images/snew.gif");
  ImageIcon openfile = new ImageIcon("images/sopen.GIF");
  ImageIcon save = new ImageIcon("images/ssave.gif");
  ImageIcon cut = new ImageIcon("images/scut.gif");
  ImageIcon paste = new ImageIcon("images/spaste.gif");
  ImageIcon exit = new ImageIcon("images/sexit.gif");
  ImageIcon copy = new ImageIcon("images/scopy.gif");
  ImageIcon about = new ImageIcon("images/sabout.gif");
  ImageIcon print = new ImageIcon("images/sprint.gif");
  ImageIcon title = new ImageIcon("images/title.png");
  ImageIcon delete=new ImageIcon("images/sdelete.gif");
  BorderLayout borderLayout1 = new BorderLayout();
  JPopupMenu jPopupMenu1 = new JPopupMenu();
  GridBagLayout gridBagLayout1 = new GridBagLayout();
  JMenuItem jMenuItem16 = new JMenuItem();
  JMenuItem jMenuItem17 = new JMenuItem();
  JMenuItem jMenuItem18 = new JMenuItem();
  JMenuItem jMenuItem19 = new JMenuItem();
  XYLayout xYLayout1 = new XYLayout();




  // GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
 //Construct the frame
 //初始化框架
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  //组件初始化
  private void jbInit() throws Exception {
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.setForeground(Color.black);
    this.setResizable(false);
    contentPane = (JPanel)this.getContentPane();
    document1 = jTextArea1.getDocument();
    contentPane.setLayout(gridBagLayout1);
    this.setSize(new Dimension(706, 596));
    this.setTitle("钦钦记事本 - [未保存]");
    jMenuFile.setText("文件");
    jMenuFileExit.setHorizontalTextPosition(SwingConstants.TRAILING);
    jMenuFileExit.setIcon(newfile);
    jMenuFileExit.setText("新建");
    jMenuFileExit.addActionListener(new Frame1_jMenuFileExit_ActionAdapter(this));
    jMenuHelp.setText("编辑");
    jMenuHelpAbout.setEnabled(true);
    jMenuHelpAbout.setIcon(cut);
    jMenuHelpAbout.setText("剪切");
    jMenuHelpAbout.addActionListener(new Frame1_jMenuHelpAbout_ActionAdapter(this));
    jPanel1.setLayout(borderLayout1);
    jTextArea1.setFont(new java.awt.Font("Dialog", 0, 14));
    jTextArea1.setDocument(document1);
    jTextArea1.setText("");
    jTextArea1.addMouseListener(new Frame1_jTextArea1_mouseAdapter(this));
    jMenuItem1.setIcon(openfile);
    jMenuItem1.setText("打开");
    jMenuItem1.addActionListener(new Frame1_jMenuItem1_actionAdapter(this));
    jMenuItem2.setIcon(save);
    jMenuItem2.setText("保存");
    jMenuItem2.addActionListener(new Frame1_jMenuItem2_actionAdapter(this));
    jMenuItem3.setIcon(save);
    jMenuItem3.setText("另存为");
    jMenuItem3.addActionListener(new Frame1_jMenuItem3_actionAdapter(this));
    jMenuItem4.setIcon(exit);
    jMenuItem4.setText("退出");
    jMenuItem4.addActionListener(new Frame1_jMenuItem4_actionAdapter(this));
    jMenuItem5.setEnabled(true);
    jMenuItem5.setIcon(copy);
    jMenuItem5.setText("复制");
    jMenuItem5.addActionListener(new Frame1_jMenuItem5_actionAdapter(this));
    jMenuItem6.setIcon(paste);
    jMenuItem6.setText("粘贴");
    jMenuItem6.addActionListener(new Frame1_jMenuItem6_actionAdapter(this));
    jMenu1.setText("格式");
    jMenuItem7.setText("字体");
    jMenuItem7.addActionListener(new Frame1_jMenuItem7_actionAdapter(this));
    jMenuItem9.setText("字体颜色");
    jMenuItem9.addActionListener(new Frame1_jMenuItem9_actionAdapter(this));
    jMenuItem10.setText("背景颜色");
    jMenuItem10.addActionListener(new Frame1_jMenuItem10_actionAdapter(this));
    jMenu2.setText("帮助");
    jMenuItem11.setIcon(about);
    jMenuItem11.setText("关于");
    jMenuItem11.addActionListener(new Frame1_jMenuItem11_actionAdapter(this));
    fontChooser1.setFrame(this);
    fontChooser1.setTitle("字体");
    document1.addDocumentListener(new Frame1_document1_documentAdapter(this));
    jLabel1.setFont(new java.awt.Font("宋体", 0, 13));
    jLabel1.setForeground(UIManager.getColor("ToolBar.dockingForeground"));
    jLabel1.setHorizontalTextPosition(SwingConstants.TRAILING);
    jLabel1.setText("状态: 未保存!");
    jLabel2.setFont(new java.awt.Font("宋体", 0, 13));
    jLabel2.setForeground(Color.blue);
    jLabel2.setText("程序制作: Design By 谢飞");
    jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
                                            VERTICAL_SCROLLBAR_AS_NEEDED);
    jScrollPane1.setAutoscrolls(true);
    jScrollPane1.setToolTipText("");
    jLabel3.setFont(new java.awt.Font("宋体", 0, 13));
    jLabel3.setForeground(Color.blue);
    jLabel3.setText("联系方式:xiefei1316@163.com");
    jMenuItem8.setIcon(print);
    jMenuItem8.setText("打印");
    jMenuItem8.addActionListener(new Frame1_jMenuItem8_actionAdapter(this));
    jMenuItem12.setIcon(print);
    jMenuItem12.setText("打印设置");
    jMenuItem12.addActionListener(new Frame1_jMenuItem12_actionAdapter(this));
    jMenuItem13.setIcon(cut);
    jMenuItem13.setText("剪切");
    jMenuItem13.addActionListener(new Frame1_jMenuItem13_actionAdapter(this));
    jMenuItem14.setIcon(copy);
    jMenuItem14.setText("复制");
    jMenuItem14.addActionListener(new Frame1_jMenuItem14_actionAdapter(this));
    jMenuItem15.setIcon(paste);
    jMenuItem15.setText("粘贴");
    jMenuItem15.addActionListener(new Frame1_jMenuItem15_actionAdapter(this));
    jPanel2.setLayout(xYLayout1);
    jPopupMenu1.setInvoker(jTextArea1);
    jMenuItem16.setIcon(delete);
    jMenuItem16.setText("删除");
    jMenuItem16.addActionListener(new Frame1_jMenuItem16_actionAdapter(this));
    jMenuItem17.setText("全选");
    jMenuItem17.addActionListener(new Frame1_jMenuItem17_actionAdapter(this));
    jMenuItem18.setIcon(delete);
    jMenuItem18.setText("删除");
    jMenuItem18.addActionListener(new Frame1_jMenuItem18_actionAdapter(this));
    jMenuItem19.setText("全选");
    jMenuItem19.addActionListener(new Frame1_jMenuItem19_actionAdapter(this));
    contentPane.add(jPanel1,  new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0
            ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, -1, 0, 0), 708, 490));
    jPanel1.add(jScrollPane1, BorderLayout.CENTER);
    contentPane.add(jPanel2,            new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0
            ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 1, 0, 18), 0, -2));
    jScrollPane1.getViewport().add(jTextArea1, null);
    jPanel2.add(jLabel1,   new XYConstraints(0, 4, 229, 14));
    jPanel2.add(jLabel3,     new XYConstraints(229, 4, 229, 14));
    jPanel2.add(jLabel2,               new XYConstraints(502, 0, 229, 23));
    jMenuFile.add(jMenuFileExit);
    jMenuFile.add(jMenuItem1);
    jMenuFile.addSeparator();
    jMenuFile.add(jMenuItem2);
    jMenuFile.add(jMenuItem3);
    jMenuFile.addSeparator();
    jMenuFile.add(jMenuItem12);
    jMenuFile.add(jMenuItem8);
    jMenuFile.addSeparator();
    jMenuFile.add(jMenuItem4);
    jMenuHelp.add(jMenuHelpAbout);
    jMenuHelp.add(jMenuItem5);
    jMenuHelp.add(jMenuItem6);
    jMenuHelp.add(jMenuItem16);
    jMenuHelp.addSeparator();
    jMenuHelp.add(jMenuItem17);
    jMenuBar1.add(jMenuFile);
    jMenuBar1.add(jMenuHelp);
    jMenuBar1.add(jMenu1);
    jMenuBar1.add(jMenu2);
    jMenu1.add(jMenuItem7);
    jMenu1.add(jMenuItem9);
    jMenu1.add(jMenuItem10);
    jMenu2.add(jMenuItem11);
    jPopupMenu1.add(jMenuItem13);
    jPopupMenu1.add(jMenuItem14);
    jPopupMenu1.add(jMenuItem15);
    jPopupMenu1.add(jMenuItem18);
    jPopupMenu1.addSeparator();
    jPopupMenu1.add(jMenuItem19);
    jTextArea1.add(jPopupMenu1);
    this.setJMenuBar(jMenuBar1);
    this.setIconImage(title.getImage());
  }


  //新建操作
  public void jMenuFileExit_actionPerformed(ActionEvent e) {
    if (giveUp()) {
      jTextArea1.setText("");
      currentFileName = null;
      this.setTitle("钦钦记事本 - [未保存]");
      jLabel1.setText("状态: 未保存!");
      motified = false;
    }
  }

//剪切操作
  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
    jTextArea1.cut();
  }

 //右上角窗口关闭退出操作
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      jMenuFileExit_actionPerformed(null);
      if (giveUp())
        System.exit(0);
    }
  }
//字体选择
  void jMenuItem7_actionPerformed(ActionEvent e) {
    fontChooser1.setSelectedFont(jTextArea1.getFont());
    if (fontChooser1.showDialog())
      jTextArea1.setFont(fontChooser1.getSelectedFont());
    this.repaint();
    jTextArea1.repaint();
  }
//前景色
  void jMenuItem9_actionPerformed(ActionEvent e) {
    Color color =
        JColorChooser.showDialog(this, "前景色",
                                 jTextArea1.getForeground());
    if (color != null) {
      jTextArea1.setForeground(color);
    }
    this.repaint();
  }
//背景色
  void jMenuItem10_actionPerformed(ActionEvent e) {
    Color color =
        JColorChooser.showDialog(this, "背景色",
                                 jTextArea1.getBackground());
    if (color != null) {
      jTextArea1.setBackground(color);
    }
    this.repaint();
  }
//复制
  void jMenuItem5_actionPerformed(ActionEvent e) {
    jTextArea1.copy();
  }
//粘贴
  void jMenuItem6_actionPerformed(ActionEvent e) {
    jTextArea1.paste();
  }
//打开文件操作
  void openFile(String fileName) {
    try {
      File file = new File(fileName);
      int size = (int) file.length();
      int chars_read = 0;
      FileReader in = new FileReader(file);
      char[] data = new char[size];
      while (in.ready()) {
        chars_read += in.read(data, chars_read, size - chars_read);
      }
      in.close();
      jTextArea1.setText(new String(data, 0, chars_read));
      this.currentFileName = fileName;
      this.motified = false;
      this.setTitle("钦钦记事本 - " + "[" + file.getName() + "]");
      jLabel1.setText("状态: 已打开!");
    }
    catch (IOException e) {
      jTextArea1.setText("打开错误!" + fileName);
    }
  }
//保存文件操作
  boolean saveFile() {
    if (currentFileName == null)
      return saveAsFile();
    try {
      File file = new File(currentFileName);
      FileWriter out = new FileWriter(file);
      String text = jTextArea1.getText();
      out.write(text);
      out.close();
      this.motified = false;
      this.setTitle("钦钦记事本" + "-" + "[" + file.getName() + "]");
      jLabel1.setText("状态: 已保存!");
      return true;
    }
    catch (IOException e) {
    }
    return false;
  }
//另存为操作
  boolean saveAsFile() {
    if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
      currentFileName = jFileChooser1.getSelectedFile().getPath();
      this.repaint();
      return saveFile();
    }
    else {
      this.repaint();
      return false;
    }
  }
//文本改变操作
  boolean giveUp() {
    if (!motified)
      return true;
    int temp = JOptionPane.showConfirmDialog(this, "文字已经改变!想保存文件吗?", "警告!",
                                             JOptionPane.YES_NO_CANCEL_OPTION);
    switch (temp) {
      case JOptionPane.YES_OPTION:
        return saveFile();
      case JOptionPane.NO_OPTION:
        return true;
      case JOptionPane.CANCEL_OPTION:
      default:
        return false;
    }
  }
  //删除
  void deleteAll(){
    jTextArea1.replaceRange("",jTextArea1.getSelectionStart(),jTextArea1.getSelectionEnd());
  }


//文件选择
  void jMenuItem1_actionPerformed(ActionEvent e) {
    if (!giveUp()) {
      return;
    }
    if (JFileChooser.APPROVE_OPTION ==
        jFileChooser1.showOpenDialog(this)) {
      openFile
          (jFileChooser1.getSelectedFile().getPath());

⌨️ 快捷键说明

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