为什么要设计文本编辑器,是练习吗?如果是初学练习的话,还是先熟悉语法和常用方法类吧。
这么说吧,其实java版的记事本就是一个JTextArea再加上一些菜单项,再加上查找对话框、替换对话框等。除了在“打开”“保存”“新建”等操作时要判断一下是否弹出“编辑文件已改变,是否保存”的对话框,别的没多大难度吧。。。。参考网址里是一个基本实现所有windows自带记事本的程序,里面分ReplaceDjava、Njava、FontDjava、FindDjava四个文件,顾名思义,共要建四个类。你要自己实现的话,可以一步一步地来,慢慢加入复杂的功能。要的话留下邮箱。
为什么要设计文本编辑器,是练习吗?如果是初学练习的话,还是先熟悉语法和常用方法类吧。
import *;import *;import *;import *;import *; //Date neededimport PrintWriter;public class NotePad extends JFrame{ JTextArea jta; class newl implements ActionListener { public void actionPerformed(ActionEvent e) { setText(""); } } class openl implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser jf=new JFileChooser(); showOpenDialog(NotePhis); } } //保存文件的监听 class savel implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser jf = new JFileChooser(); showSaveDialog(NotePhis); } } //打印的监听 ? class printl implements ActionListener { public void actionPerformed(ActionEvent e) { // PrintWriter p = new PrintWriter(NotePhis); } } //退出记事本的监听 class exitl implements ActionListener { public void actionPerformed(ActionEvent e) { Sxit(0);//退出 } } //拷贝的监听 class copyl implements ActionListener { public void actionPerformed(ActionEvent e) { py(); } } //粘贴的监听 class pastel implements ActionListener { public void actionPerformed(ActionEvent e) { paste(); } } //剪切的监听 class cutl implements ActionListener { public void actionPerformed(ActionEvent e) { ut(); } } //查找的监听 //添加日期的监听 class datel implements ActionListener { public void actionPerformed(ActionEvent e) { Date d=new Date(); append(String()); } }//构造函数 public NotePad() { jta=new JTextArea("",24,40); JScrollPane jsp=new JScrollPane(jta); JMenuBar jmb=new JMenuBar(); JMenu mFile=new JMenu("File"); JMenu mEdit=new JMenu("Edit"); JMenuItem mNew=new JMenuItem("New",KeyEVK_N); mNaddActionListener(new newl()); mFadd(mNew); JMenuItem mOpen=new JMenuItem("Open",KeyEVK_O); mOaddActionListener(new openl()); mFadd(mOpen); JMenuItem mSave=new JMenuItem("Save"); mSaddActionListener(new savel()); mFadd(mSave); mFaddSeparator(); //添加分割线 JMenuItem mPrint = new JMenuItem("Print"); mPaddActionListener(new printl()); mFadd(mPrint); mFaddSeparator(); //添加分割线 JMenuItem mExit=new JMenuItem("Exit"); mEaddActionListener(new exitl()); mFadd(mExit); mFsetMnemonic(KeyEVK_F); //编辑菜单的子菜单的处理 JMenuItem jmi; jmi=new JMenuItem("Copy"); addActionListener(new copyl()); mEadd(jmi); jmi=new JMenuItem("Cut"); addActionListener(new cutl()); mEadd(jmi); jmi=new JMenuItem("Paste"); addActionListener(new pastel()); mEadd(jmi); mEaddSeparator(); //添加分割线 jmi=new JMenuItem("Find"); mEadd(jmi); jmi=new JMenuItem("FindNext"); mEadd(jmi); mEaddSeparator(); jmi=new JMenuItem("Select All"); mEadd(jmi); jmi=new JMenuItem("Date/Time"); addActionListener(new datel()); mEadd(jmi); add(mFile); add(mEdit); setJMenuBar(jmb); ContentPane()add(jsp); setSize(200,200); setVisible(true); } //主函数,程序入口点 public static void main(String s[]) { new NotePad(); } }
1 可以用列表 将程序中的函数列出-----这个好做,JList,JTable,JLabel等都可以。2 点击列表项 可以还原到程序的相关行----什么意思?1 新建函数时 可以弹出对话框 用以输入函数名和函数体-----这也好做,前者用JTextfield,后者就看你是函数意义了。2 并在程序中自动生成代码----什么代码?好像和2同,意义不清。你这里的函数的概念是什么?都包括什么符号?多变量?微积分?泛涵?总要有各定域才好。你的应用对象是中学生?大学生?还是财会人员?要对这里的函数有个明确表示,不然输入函数体的时候会有很多 exception的。当然如果是编程的函数的概念就好办了。只需要动态编译所输入的代码,看能否过就好。但话又说回来,面向对象的编程,就java来说重载,复用,还有继承,抽象,这个涵数和其他的关系如何考虑啊?能说说问题的出处?目的?需求?。。。。。。谢谢。
1 可以用列表 将程序中的函数列出-----这个好做,JList,JTable,JLabel等都可以。2 点击列表项 可以还原到程序的相关行----什么意思?1 新建函数时 可以弹出对话框 用以输入函数名和函数体-----这也好做,前者用JTextfield,后者就看你是函数意义了。2 并在程序中自动生成代码----什么代码?好像和2同,意义不清。你这里的函数的概念是什么?都包括什么符号?多变量?微积分?泛涵?总要有各定域才好。你的应用对象是中学生?大学生?还是财会人员?要对这里的函数有个明确表示,不然输入函数体的时候会有很多 exception的。当然如果是编程的函数的概念就好办了。只需要动态编译所输入的代码,看能否过就好。但话又说回来,面向对象的编程,就java来说重载,复用,还有继承,抽象,这个涵数和其他的关系如何考虑啊?能说说问题的出处?目的?需求?。。。。。。谢谢。
import *;import *;import *;import *;import *; //Date neededimport PrintWriter;public class NotePad extends JFrame{ JTextArea jta; class newl implements ActionListener { public void actionPerformed(ActionEvent e) { setText(""); } } class openl implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser jf=new JFileChooser(); showOpenDialog(NotePhis); } } //保存文件的监听 class savel implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser jf = new JFileChooser(); showSaveDialog(NotePhis); } } //打印的监听 ? class printl implements ActionListener { public void actionPerformed(ActionEvent e) { // PrintWriter p = new PrintWriter(NotePhis); } } //退出记事本的监听 class exitl implements ActionListener { public void actionPerformed(ActionEvent e) { Sxit(0);//退出 } } //拷贝的监听 class copyl implements ActionListener { public void actionPerformed(ActionEvent e) { py(); } } //粘贴的监听 class pastel implements ActionListener { public void actionPerformed(ActionEvent e) { paste(); } } //剪切的监听 class cutl implements ActionListener { public void actionPerformed(ActionEvent e) { ut(); } } //查找的监听 //添加日期的监听 class datel implements ActionListener { public void actionPerformed(ActionEvent e) { Date d=new Date(); append(String()); } }//构造函数 public NotePad() { jta=new JTextArea("",24,40); JScrollPane jsp=new JScrollPane(jta); JMenuBar jmb=new JMenuBar(); JMenu mFile=new JMenu("File"); JMenu mEdit=new JMenu("Edit"); JMenuItem mNew=new JMenuItem("New",KeyEVK_N); mNaddActionListener(new newl()); mFadd(mNew); JMenuItem mOpen=new JMenuItem("Open",KeyEVK_O); mOaddActionListener(new openl()); mFadd(mOpen); JMenuItem mSave=new JMenuItem("Save"); mSaddActionListener(new savel()); mFadd(mSave); mFaddSeparator(); //添加分割线 JMenuItem mPrint = new JMenuItem("Print"); mPaddActionListener(new printl()); mFadd(mPrint); mFaddSeparator(); //添加分割线 JMenuItem mExit=new JMenuItem("Exit"); mEaddActionListener(new exitl()); mFadd(mExit); mFsetMnemonic(KeyEVK_F); //编辑菜单的子菜单的处理 JMenuItem jmi; jmi=new JMenuItem("Copy"); addActionListener(new copyl()); mEadd(jmi); jmi=new JMenuItem("Cut"); addActionListener(new cutl()); mEadd(jmi); jmi=new JMenuItem("Paste"); addActionListener(new pastel()); mEadd(jmi); mEaddSeparator(); //添加分割线 jmi=new JMenuItem("Find"); mEadd(jmi); jmi=new JMenuItem("FindNext"); mEadd(jmi); mEaddSeparator(); jmi=new JMenuItem("Select All"); mEadd(jmi); jmi=new JMenuItem("Date/Time"); addActionListener(new datel()); mEadd(jmi); add(mFile); add(mEdit); setJMenuBar(jmb); ContentPane()add(jsp); setSize(200,200); setVisible(true); } //主函数,程序入口点 public static void main(String s[]) { new NotePad(); } }
我这里有一个jar可以用,想看源代码的话你可以反编译。留一个邮箱,我给你发过去。
JDK自带一个简单的Notepad,你可以研究一下他的源代码。在%JAVA_HOME%\demo\jfc\Notepad 目录下JDK自带一个稍复杂的Stylepad,你可以研究一下他的源代码。在%JAVA_HOME%\demo\jfc\Stylepad目录下
UE\Gview
我这里有啊,就是用JAVA做的记事本嘛, 记事本的功能除了打印啥都有,另外还有撤销、恢复等,有工具栏什么的,留个邮箱什么的,打包发给你!
这么说吧,其实java版的记事本就是一个JTextArea再加上一些菜单项,再加上查找对话框、替换对话框等。除了在“打开”“保存”“新建”等操作时要判断一下是否弹出“编辑文件已改变,是否保存”的对话框,别的没多大难度吧。。。。参考网址里是一个基本实现所有windows自带记事本的程序,里面分ReplaceDjava、Njava、FontDjava、FindDjava四个文件,顾名思义,共要建四个类。你要自己实现的话,可以一步一步地来,慢慢加入复杂的功能。要的话留下邮箱。
文本编辑器用ultraedit或者editplus 我常用的是ultraedit集成开发环境有netbeans、elipse、jbuilder我常用的是netbeans文本编辑器的源代码,JDK自带的demo里面就有,路径:Java\0_15\demo\plugin\jfc\Stylepad
这么说吧,其实java版的记事本就是一个JTextArea再加上一些菜单项,再加上查找对话框、替换对话框等。除了在“打开”“保存”“新建”等操作时要判断一下是否弹出“编辑文件已改变,是否保存”的对话框,别的没多大难度吧。。。。参考网址里是一个基本实现所有windows自带记事本的程序,里面分ReplaceDjava、Njava、FontDjava、FindDjava四个文件,顾名思义,共要建四个类。你要自己实现的话,可以一步一步地来,慢慢加入复杂的功能。要的话留下邮箱。
10分,还要一个完整带文档的,你当百度的这破分多值钱啊。
JDK自带一个简单的Notepad,你可以研究一下他的源代码。在%JAVA_HOME%\demo\jfc\Notepad 目录下JDK自带一个稍复杂的Stylepad,你可以研究一下他的源代码。在%JAVA_HOME%\demo\jfc\Stylepad目录下