Java学习笔记――文本操作(记事本实现) (一)

2014-11-24 07:17:29 · 作者: · 浏览: 6
Java写的一个记事本的小程序,实现了新建,打开,另存为,删除,复制,剪切,粘贴,查找和替换一些菜单功能,先看效果图吧~
\

打开文本文件

\

下面贴上完整代码,代码里面有详细注释


[html] import java.awt.FileDialog;
import java.awt.GridLayout;
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.datatransfer.UnsupportedFlavorException;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.undo.UndoManager;
/*
* 记事本----独孤我---2011年12月5日----绿岛网络办公室
* 转载请注明出处*
*
* */

public class Notepad extends JFrame implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
JPanel pl=new JPanel();
JTextArea myarea=new JTextArea();

//相关变量
int start=0;//查找开始位置
int end=0;//查找结束位置
private String filename; //打开的文件名
String textContent="";//编辑框中的内容
private Writer file_writer;
UndoManager undoManager = new UndoManager();//撤销管理器

public Notepad()

{
initComponment();//面板初始化
}
private void initComponment()
{
//菜单栏
JMenuBar mb=new JMenuBar();

//弹出菜单
final JPopupMenu myPopMenu=new JPopupMenu();
JMenuItem copy_pop=new JMenuItem("复制");
JMenuItem cut_pop=new JMenuItem("剪切");
JMenuItem paste_pop=new JMenuItem("粘贴");
JMenuItem delete_pop=new JMenuItem("删除");
JMenuItem exit_pop=new JMenuItem("退出");

myPopMenu.add(cut_pop);
myPopMenu.add(copy_pop);
myPopMenu.add(delete_pop);
myPopMenu.add(paste_pop);
myPopMenu.add(exit_pop);

cut_pop.addActionListener(this);
copy_pop.addActionListener(this);
delete_pop.addActionListener(this);
paste_pop.addActionListener(this);
exit_pop.addActionListener(this);


//菜单
JMenu file=new JMenu("文件");
JMenu edit=new JMenu("编辑");
JMenu help=new JMenu("帮助");


//子菜单
JMenuItem newnew_file=new JMenuItem("新建");
JMenuItem open=new JMenuItem("打开");
JMenuItem save=new JMenuItem("保存");
JMenuItem save_as=new JMenuItem("另存为");
JMenuItem exit=new JMenuItem("退出");

JMenuItem search=new JMenuItem("查找和替换");

JMenuItem copy=new JMenuItem("复制");
JMenuItem cut=new JMenuItem("剪切");
JMenuItem paste=new JMenuItem("粘贴");
JMenuItem delete=new JMenuItem("删除");


//绑定监听事件
new_file.addActionListener(this);
open.addActionListener(this);
save.addActionListener(this);
save_as.addActionListener(