文本编辑软件
来源:互联网 发布:网络推广威客 编辑:程序博客网 时间:2024/05/21 06:14
利用6个学时的时间完成编写一个文本编辑软件,要求:
1、具有菜单功能,包括如下菜单:
文件:新建、打开、保存、退出
编辑:复制、粘贴、查找、替换
帮助:关于
如图所示:
2、刚运行时默认是新建状态,标题栏可以显示为“新建文本文件”,可以直接在文本区(JTextArea)中输入文字内容,单击保存菜单时要做判断是否保存过,如果还没有保存过则提示输入文件名,然后保存为用户输入的文件名,同时窗口的标题栏显示为该文件名;如果不是第一次保存,即已经保存过一次,则直接保存到原来的文件名,标题栏仍然显示为原来的文件名。
3、单击打开菜单时,弹出打开文件对话框,要用户选择一个文本文件,然后把文件内容读取并显示到文本编辑区(用JTextArea实现),单击保存时,不用再提示输入文件名,直接保存到原来的打开时的文件名,文件名要显示到标题栏(同时文件名应该保存到属性变量中)
4、单击保存菜单时,要判断是否是第一次新建或默认运行时的状态,如果是,则提示输入文件名,然后保存到文件中去;否则,直接保存到原来的文件名里即可。
5、单击退出菜单,直接退出系统。
6、单击复制菜单时,将选中的文本复制到粘贴板。
7、单击粘贴菜单时,将粘贴板中的内容复制到光标所在的文本位置。
8、单击查找菜单时,提示输入要查找的内容,并把查找到的内容选中。
9、单击替换菜单时,提示输入要替换成的内容,并进行替换(只替换第一个找到的结果即可,其他的可以多次替换来完成)
10、单击关于菜单时,显示一个作者和版权信息即可(作者是你本人)。
import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;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.JTextArea;public class TextEdit extends JFrame{JTextArea text;Container c;String filename;String filepath;JMenuBar jmb;JMenu file;JMenu edit;JMenu help;JMenuItem build;JMenuItem open;JMenuItem save;JMenuItem exit;JMenuItem copy;JMenuItem paste;JMenuItem find;JMenuItem replace;JMenuItem about;public void init(){c=this.getContentPane();c.setLayout(new BorderLayout());jmb=new JMenuBar();file=new JMenu("文件");edit=new JMenu("编辑");help=new JMenu("帮助");build=new JMenuItem("新建");build.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){text.setText("");}});open=new JMenuItem("打开");open.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JFileChooser fc=new JFileChooser();int diablog=fc.showOpenDialog(open);if(diablog==JFileChooser.APPROVE_OPTION){filename=fc.getSelectedFile().getName();filepath=fc.getCurrentDirectory().toString();try { File file=new File(filepath,filename); BufferedReader bfReader=new BufferedReader(new FileReader(file));String line;try {line = bfReader.readLine();while(line!=null){text.append(line+"\n");line=bfReader.readLine();}bfReader.close();} catch (IOException e1) {e1.printStackTrace();}} catch (FileNotFoundException e1) {e1.printStackTrace();}}}});save=new JMenuItem("保存");save.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JFileChooser jfc=new JFileChooser();int diablog=jfc.showOpenDialog(open);if(diablog==JFileChooser.APPROVE_OPTION){filename=jfc.getSelectedFile().getName();if(filename.equals(""))System.out.println("文件名不能为空!");else{filepath=jfc.getCurrentDirectory().toString();try {FileWriter fwriter=new FileWriter(filepath+"/"+filename);fwriter.write(text.getText());fwriter.close();} catch (IOException e1) {e1.printStackTrace();} }}else{try {FileWriter fwriter=new FileWriter(filepath+"/"+filename);fwriter.write(text.getText());fwriter.close();} catch (IOException e1) {e1.printStackTrace();}}}});exit=new JMenuItem("退出");exit.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});copy=new JMenuItem("复制");copy.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){text.copy();}});paste=new JMenuItem("粘贴");paste.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){text.paste();}});find=new JMenuItem("查找");find.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String input=JOptionPane.showInputDialog("请输入要查找的内容");String tmp=text.getText();int start=tmp.indexOf(input);int end=start+input.length();text.setSelectionStart(start);text.setSelectionEnd(end);}});replace=new JMenuItem("替换");replace.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String input=JOptionPane.showInputDialog("请输入要替换的内容");text.replaceRange(input,text.getSelectionStart(),text.getSelectionEnd());}});about=new JMenuItem("关于");about.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showConfirmDialog(about,"李鸿超");}});c.add(jmb,BorderLayout.NORTH);file.add(build);file.add(open);file.add(save);file.add(exit);edit.add(copy);edit.add(paste);edit.add(find);edit.add(replace);help.add(about);jmb.add(file);jmb.add(edit);jmb.add(help);text=new JTextArea(200,200);c.add(text);this.setSize(500,500);this.setVisible(true);}public TextEdit(String s){super(s);init();}public static void main(String[] args) {TextEdit te=new TextEdit("My FirstText!");}}
0 0
- 文本编辑软件
- editplus文本编辑软件,
- java文本编辑软件代码
- 文本编辑
- UNIX系统文本编辑软件vi命令详解
- [编辑本段]VIM文本编辑软件
- UNIX系统文本编辑软件vi命令详解
- 【转】第四章 文本编辑和字处理软件
- Linux学习笔记----vim文本编辑软件
- 善用软件: 文本办公之文本编辑
- Linux学习笔记----vim文本编辑软件
- 文本编辑软件正则表达式使用笔记 By Stabx
- linux基础-文本编辑、解压缩、软件安装卸载(实用)
- 在Mac中使用文本编辑软件编写html文件
- 孙鑫VC++视频学习笔记之4:文本编辑和字处理软件
- 文本编辑软件UltraEdit v16.20官方简/繁体中文版下载+注册码和破解方法
- 文本编辑软件UltraEdit v16.20官方简/繁体中文版下载+注册码和破解方法
- 磨刀室-文本编辑之全面接触PDF:最好用的PDF软件汇总(转)
- Python challenge_11
- eclipse启动时问题集锦
- Linux下vi的基本用法指南
- NGUI 3.0.2 example 8
- B/S verse C/S
- 文本编辑软件
- HTML解析组件HtmlAgilityPack使用
- C++之模板特化
- 【算法-排序之四】希尔排序
- myeclipse内存不足解决方法
- dtplayer编译运行说明
- Exercise 29:If 是什么
- 设置eclipse文件编码格式
- Fruit Ninja(水果忍者)游戏源代码下载、分析(上)---可运行Android,Ios,Window,Mac,Html5平台