Java记事本

合集下载

我用java编写的记事本代码,分享给大家

我用java编写的记事本代码,分享给大家
backcolor.add(gray); backcolor.addSeparator();
backcolor.add(white); backcolor.addSeparator();
backcolor.add(pink); backcolor.addSeparator();
backcolor.add(morecolor);
JMenuItem red=new JMenuItem("红色");//","橙","黄","","青","蓝","紫","黑","灰","白","粉红"
JMenuItem green=new JMenuItem("绿色");
JMenuItem yellow=new JMenuItem("黄色");
clear.setFont(a); clear.setForeground(Color.MAGENTA);
paste.setFont(a); paste.setForeground(Color.MAGENTA);
cut.setFont(a); cut.setForeground(Color.MAGENTA);
JMenuItem black=new JMenuItem("黑色");
JMenuItem gray=new JMenuItem("灰色");
JMenuItem white=new JMenuItem("白色");
JMenuItem pink=new JMenuItem("粉红");

java日历记事本小游戏当前时间代码

java日历记事本小游戏当前时间代码

rightPanel=new JPanel();
this.year=year;
this.month=month;
this.day=day;
负责改变年=new Year(this);
private static final long serialVersionUID = -1805873342285018876L;
int a,b,c;
WindowButton Game;
Timer Time;
CalendarPad 开始=null;
fileMenu1.add(item1);
fileMenu1.add(item2);
fileMenu1.add(item3);
bar.add(fileMenu1);
win.setMenuBar(bar);
win.add(la,BorderLayout.CENTER);
item1=new MenuItem("日历记事本");
bar=new MenuBar();
fileMenu1=new Menu("菜单选项");
item2=new MenuItem("小游戏");
item3=new MenuItem("当前时间");
if(e.getSource()==item2)
{Game=new WindowButton("小游戏");
Game.setVisible(true);}
if(e.getSource()==item3)
{ Calendar calendar=Calendar.getInstance();

java记事本实验报告doc

java记事本实验报告doc

java记事本实验报告篇一:JAVA记事本实验报告(含源代码运行结果)嘉应学院计算机学院系/班别:指导老师:课程名称:实验内容:学生学号:学生姓名:实验地点:实验类型:实验时间:实验报告计算机学院1203班 Java语言程序设计用Java编写记事本第十四周至第十七周实验要求:能够通过使用JDK1.6安装开发windows 桌面应用程序。

实验目的:熟悉事件触发和事件监听以及组件和容器的界面安排,能够用java设计一个仿windows的标准型记事本。

实验过程描述:一、实验环境:网络实验室二、实验设备:PC机, 网络三、实验平台:winxp. JDK1.6过程描述:1.首先,安装JDK1.62.打开开始-》运行->输入cmd进入dos->cd 路径(原程序的路径)->javac NotepadTest.java(编绎)->java NotepadTest运行四、编写程序:import java.io.File;import .URLClassLoader;import .URL;import ng.InterruptedException;import java.io.FileInputStream;import java.io.FileOutputStream; import java.io.PrintStream;import java.util.Scanner;import java.util.Date;import java.util.Iterator;import java.util.List;import java.text.SimpleDateFormat; import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.ImageIcon;import javax.swing.JScrollPane; import javax.swing.JToolBar; import javax.swing.JMenuItem; import javax.swing.KeyStroke; import javax.swing.JPopupMenu; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JFileChooser; import javax.swing.JColorChooser; import javax.swing.JDialog; import javax.swing.JTextField; import javax.swing.BorderFactory; import javax.swing.JList;import javax.swing.JComboBox; import javax.swing.UIManager; import javax.swing.JRadioButton; import javax.swing.JToggleButton;import javax.swing.ButtonGroup;import javax.swing.TransferHandler;import javax.swing.border.Border;import javax.swing.border.TitledBorder;import javax.swing.text.Document;import javax.swing.undo.UndoManager;import javax.swing.undo.UndoableEdit;import javax.swing.event.UndoableEditEvent; import javax.swing.event.UndoableEditListener; import javax.swing.event.DocumentListener;import javax.swing.event.DocumentEvent;import javax.swing.JComponent;import java.awt.Font;import java.awt.Window;import java.awt.Event;import java.awt.MediaTracker;import java.awt.Color;import java.awt.event.KeyListener;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Container;import java.awt.Toolkit;import java.awt.Image;import java.awt.GraphicsEnvironment;import java.awt.datatransfer.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.Transferable;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.awt.event.KeyListener;import java.awt.event.KeyAdapter;import java.awt.event.ActionListener;import java.awt.event.MouseListener;import java.awt.event.MouseEvent;import java.awt.event.MouseAdapter;import java.awt.event.ActionEvent;class MyTransferHandler extends TransferHandler { JTextArea text=null;public MyTransferHandler(JTextArea text){this.text=text;}public boolean canImport(JComponent c, DataFlavor[] flavors)//在拖放操作期间重复调用此方法,判断是否可以输入{for (int i = 0; i if (DataFlavor.javaFileListFlavor.equals(flavors[i])){ return true;}}return false;}public boolean importData(JComponent com,Transferable t){try{篇二:记事本的设计与实现Java版实验报告报告编号:第九组JAVA课程设计报告记事本的设计与实现学生姓名:指导教师:所在系:电子信息系所学专业:计算机科学与技术年级:XX年12月目录摘要 ................................................ ................................................... .. (1)第1章前言 ................................................ ................................................... . (2)1.1研究背景................................................. ................................................... . (2)1.2 开发意义................................................. ................................................... (2)1.3 本文的组织结构 ................................................ ................................................... . (2)第2章需求分析 ................................................ ................................................... . (3)2.1系统功能分析 ................................................ ................................................... (3)2.2 设计目标................................................. ................................................... (4)第3章概要设计 ................................................ ................................................... . (5)第4章详细设计 ................................................ ................................................... ..................... (7)4.1文件模块的详细设计 ................................................ ................................................... (7)4.1.1新建模块的详细设计 ................................................ . (7)4.1.2打开模块的详细设计 ................................................ . (8)4.1.3保存、另存模块的详细设计 ................................................ . (8)4.1.4退出模块的详细设计 ................................................ . (9)4.2编辑模块的详细设计 ................................................ ................................................... (9)4.2.1撤销模块的详细设计 ................................................ . (9)4.2.2剪切模块的详细设计 ................................................ .. (10)4.2.3复制模块的详细设计 ................................................ .. (11)4.2.4粘贴模块的详细设计 ................................................ (11)4.2.5删除模块的详细设计 ................................................ .. (12)4.2.6全选模块的详细设计 ................................................ .. (12)4.2.7查找、替换模块的详细设计 ................................................ .. (13)4.3格式模块的详细设计 ................................................ ................................................... . (14)第5章系统测试 ................................................ ................................................... (15)5.1 程序主界面.................................................................................................... (15)5.2文件界面................................................. ................................................... .. (15)5.3编辑菜单................................................. ................................................... .. (17)第6章小结 ................................................ ................................................... .. (27)参考文献 ................................................ ................................................... . (27)摘要本组课程设计的课题是“记事本的设计与实现”,设计的记事本系统应具有新建、打开、保存、剪切、复制、粘贴、查找、字体设置等基本功能,满足用户对文件的处理,文本文档的编辑和字体的设置等要求。

java课程设计

java课程设计

课程设计(论文)题目名称记事本程序课程名称java 程序设计课程设计学生姓名学号系、专业指导教师2010年1 月3 日摘要本次课程设计的题目是用JA V A语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。

本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。

记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。

关键词:记事本程序;Java语言;swing组件目录1 问题描述 (3)2 需求分析 (3)3 概要设计 (3)3.1自定义类说明 (3)3.2 程序流程图 (7)4 详细设计 (7)4.1 jishiben类的实现 (7)4.2 GUI程序界面设计 (7)4.3 事件处理 (9)5 测试分析 (12)6 课程设计总结 (16)6.1设计体会 (16)6.2致谢 (16)参考文献 (17)附录(源程序清单) (18)1 问题描述设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。

这次课程设计由卢炜、刘秀春、伍霜霜和我四个人合作完成。

卢炜负责概要设计,刘秀春负责4.1 jishiben类的实现和4.2 GUI程序界面设计,伍霜霜负责5测试分析。

由于4.3事件处理和撰写程序关系密切,这两项都由我负责。

并且根据伍霜霜的测试的结果重新调整程序。

2 需求分析本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。

(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。

印象笔记整理java代码

印象笔记整理java代码

印象笔记整理java代码
当使用印象笔记整理Java代码时,可以采取多种方法来组织和
管理代码片段、注释和相关文档。

以下是一些建议和技巧:
1. 创建笔记本和笔记,首先,在印象笔记中创建一个专门用于
存储Java代码的笔记本。

在该笔记本中创建不同的笔记,用于存储
不同类型或功能的Java代码。

2. 使用标签,为了更好地组织和分类Java代码,可以为每个
代码片段或笔记添加标签。

例如,可以添加标签来表示代码的用途、功能或关联的项目名称。

3. 利用笔记标题和目录,在每个笔记中使用清晰明了的标题,
以便快速浏览和查找特定的代码片段。

另外,可以利用笔记的目录
功能来创建一个结构化的代码索引,便于快速导航和查找。

4. 插入代码块,印象笔记支持插入代码块,可以直接粘贴或输
入Java代码,并选择合适的代码语言格式进行展示。

这样可以使代
码片段更易于阅读和理解。

5. 添加注释和解释,在代码片段的上方或旁边添加注释,解释代码的作用、用法、关联的问题或解决方案等。

这有助于他人理解你的代码,并帮助自己回顾和复习。

6. 使用搜索功能,印象笔记提供了强大的搜索功能,可以通过关键词或标签快速定位和查找特定的Java代码片段,因此可以更轻松地管理大量的代码。

总之,在印象笔记中整理Java代码时,建议充分利用笔记本、标签、标题、目录、代码块和注释等功能,以便清晰、有序地管理和展示你的Java代码,同时也方便自己和他人查阅和使用。

希望这些建议能够帮助你更好地整理和管理Java代码。

java课程设计记事本设计报告

java课程设计记事本设计报告

java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。

1.理解Java编程语言的基本语法和结构。

2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。

3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。

4.熟悉Java中的常用类库和方法。

5.能够运用Java编程语言编写简单的程序。

6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。

7.能够分析并解决编程过程中遇到的问题。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。

2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。

3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。

二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。

1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。

–类和对象的概念,封装、继承和多态的原理。

–常用类库和方法的使用。

2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。

–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。

–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。

三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。

2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。

3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。

4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。

《Java》课程设计》记事本

《Java》课程设计》记事本

《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。

(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。

首先是标准型的记事本,拥有文件、编辑。

格式和帮助。

如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。

如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。

如图三所示。

图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。

如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。

如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。

如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。

java编写的记事本源代码

java编写的记事本源代码

import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.text.*;import javax.swing.event.*;public class IJMFrame extends JFrame {Document document = null;JTextArea textArea = new JTextArea();JScrollPane scrollPane = new JScrollPane(textArea); EditController controller;//------ 定义菜单变量------//JMenuBar menuBar = new JMenuBar();JMenu menuFile = new JMenu("文件");JMenu menuEdit = new JMenu("编辑");JMenu menuFormat = new JMenu("格式"); JPopupMenu memuPopup = new JPopupMenu(); JMenuItem itemNew = new JMenuItem("新建"); JMenuItem itemOpen = new JMenuItem("打开"); JMenuItem itemSave = new JMenuItem("保存"); JMenuItem itemSaveAs = new JMenuItem("另存"); JMenuItem itemExit = new JMenuItem("退出"); JMenuItem itemUndo = new JMenuItem("撤消"); JMenuItem itemCut = new JMenuItem("剪切"); JMenuItem itemCopy = new JMenuItem("复制"); JMenuItem itemPaste = new JMenuItem("粘贴"); JMenuItem itemDelete = new JMenuItem("删除"); JMenuItem itemFind = new JMenuItem("查找"); JMenuItem itemReplace = new JMenuItem("替换"); JMenuItem itemSelectAll = new JMenuItem("全选"); JMenuItem itemFont = new JMenuItem("字体");//------------定义右键菜单------------------------// JMenuItem popupMenu_Undo=new JMenuItem("撤销"); JMenuItem popupMenu_Cut=new JMenuItem("剪切"); JMenuItem popupMenu_Copy=new JMenuItem("复制"); JMenuItem popupMenu_Paste=new JMenuItem("粘贴"); JMenuItem popupMenu_Delete=new JMenuItem("删除"); JMenuItem popupMenu_SelectAll=new JMenuItem("全选");public IJMFrame() {super("记事本");setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setJMenuBar(menuBar);//创建新的菜单栏getContentPane().add(scrollPane);document = textArea.getDocument();textArea.setLineWrap(true);// 默认为换行textArea.setWrapStyleWord(true);//-- 设置菜单--//itemUndo.setEnabled(false);menuBar.add(menuFile);menuBar.add(menuEdit);menuBar.add(menuFormat);menuFile.add(itemNew);menuFile.add(itemOpen);menuFile.add(itemSave);menuFile.add(itemSaveAs);menuFile.addSeparator();menuFile.add(itemExit);menuEdit.add(itemUndo);menuEdit.addSeparator();menuEdit.add(itemCut);menuEdit.add(itemCopy);menuEdit.add(itemPaste);menuEdit.add(itemDelete);menuEdit.addSeparator();menuEdit.add(itemFind);menuEdit.add(itemReplace);menuEdit.add(itemSelectAll);menuFormat.add(itemFont);popupMenu_Undo.setEnabled(false); // 撤消选项初始设为不可用memuPopup.add(popupMenu_Undo);memuPopup.addSeparator();memuPopup.add(popupMenu_Cut);memuPopup.add(popupMenu_Copy);memuPopup.add(popupMenu_Paste);memuPopup.add(popupMenu_Delete);memuPopup.addSeparator();memuPopup.add(popupMenu_SelectAll);//-- 增加菜单的侦听者--//controller = new EditController(this);itemNew.addActionListener(controller);itemOpen.addActionListener(controller);itemSave.addActionListener(controller);itemSaveAs.addActionListener(controller);itemExit.addActionListener(controller);itemUndo.addActionListener(controller);itemCut.addActionListener(controller);itemCopy.addActionListener(controller);itemPaste.addActionListener(controller);itemDelete.addActionListener(controller);itemFind.addActionListener(controller);itemReplace.addActionListener(controller);itemSelectAll.addActionListener(controller);itemFont.addActionListener(controller);popupMenu_Undo.addActionListener(controller);popupMenu_Cut.addActionListener(controller);popupMenu_Copy.addActionListener(controller);popupMenu_Paste.addActionListener(controller);popupMenu_Delete.addActionListener(controller);popupMenu_SelectAll.addActionListener(controller);document.addDocumentListener(controller);document.addUndoableEditListener(controller);addWindowListener(controller);MouseAdapter mAdapter=new MouseAdapter(){public void mousePressed(MouseEvent e) {checkForTriggerEvent(e);}public void mouseReleased(MouseEvent e) {checkForTriggerEvent(e);}private void checkForTriggerEvent(MouseEvent e) {if (e.isPopupTrigger())memuPopup.show(e.getComponent(), e.getX(), e.getY());// 在组件调用者的坐标空间中的位置// X、Y// 显示弹出菜单。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ClipUtil.javapackage com.mingrisoft.notebook;import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection;import java.awt.datatransfer.Transferable;public class ClipUtil {private Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); //获取Clipboard 对象public void setData(String data) { //定义复制数据方法cb.setContents(new StringSelection(data), null); //实现数据复制}public String getData() { //定义数据粘贴方法Transferable content = cb.getContents(null); //调用getContents()方法实现数据粘贴try {return (String) content.getTransferData(DataFlavor.stringFlavor); //返回剪贴板中的数据} catch (Exception e) {return null;}}}FristNoteBook.javapackage com.mingrisoft.notebook;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.UIManager;import javax.swing.filechooser.FileFilter;public class FristNoteBook extends JFrame {private JTextArea filetextArea;/*** Launch the application** @param args*/String name = null;public static void main(String args[]) {EventQueue.invokeLater(new Runnable() {public void run() {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());FristNoteBook frame = new FristNoteBook();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame*/public FristNoteBook() {super();setTitle("记事本");getContentPane().setLayout(null);setBounds(100, 100, 412, 324);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JMenuBar jmBar = new JMenuBar();this.setJMenuBar(jmBar);JMenu fileMenu = new JMenu("文件");JMenu editeMenu = new JMenu("编辑");JMenu helpMenu = new JMenu("帮助");jmBar.add(fileMenu);jmBar.add(editeMenu);jmBar.add(helpMenu);JMenuItem newFile = new JMenuItem("新建");newFile.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {filetextArea.setText(""); // 实现将文本域中的内容清空}});JMenuItem openFile = new JMenuItem("打开"); //定义"打开菜单项"openFile.addActionListener(new ActionListener() { //绑定单击事件public void actionPerformed(final ActionEvent e) {openFile(e); //调用openFile()方法BufferedReader br; //创建BufferedReader对象try {if (name != null) { //如果String对象不为空br = new BufferedReader(new FileReader(name)); //实例化BufferedReader对象StringBuffer sb = new StringBuffer(); //定义字符创生成器对象String aline;while ((aline = br.readLine()) != null) { //循环读取流中数据sb.append(aline + '\n'); //向字符串生成器中追加内容}br.close(); //将流关闭filetextArea.setText(sb.toString()); //将读取内容,设置为文本域内容}} catch (Exception e1) {e1.printStackTrace();}}});JMenuItem saveFile = new JMenuItem("保存");saveFile.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {MyFileChooser myFileChooser = new MyFileChooser(); //创建包含有保存文件对话框的MyFileChooser类对象myFileChooser.getFileChooser(); //调用该类的获取保存文件对话框方法BufferedWriter bw; //创建BufferedWriter对象try {bw = new BufferedWriter(new FileWriter(myFileChooser.getPath())); //根据用户选择地址,实例化BufferedWriter对象bw.write(filetextArea.getText()); //将文本域中内容写入流中bw.close(); //将流关闭} catch (Exception e1) {e1.printStackTrace();}}});JMenuItem exit = new JMenuItem("退出");exit.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {System.exit(0);}});fileMenu.add(newFile);fileMenu.add(openFile);fileMenu.add(saveFile);fileMenu.add(exit);JMenuItem copeEdite = new JMenuItem("复制");copeEdite.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {ClipUtil clipUtil = new ClipUtil(); //创建ClipUtil对象clipUtil.setData(filetextArea.getText()); //调用复制数据方法}});JMenuItem cutEdite = new JMenuItem("剪切");cutEdite.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {ClipUtil clipUtil = new ClipUtil();clipUtil.setData(filetextArea.getSelectedText()); //调用复制数据方法filetextArea.replaceRange("", filetextArea.getSelectionStart(),filetextArea.getSelectionEnd()); //将选中数据用空字符串替换}});JMenuItem stickEdite = new JMenuItem("粘贴");stickEdite.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {ClipUtil clipUtil = new ClipUtil();String str = clipUtil.getData(); //调用粘贴数据方法filetextArea.replaceRange(str,filetextArea.getSelectionStart(), filetextArea.getSelectionEnd()); //设置文本域中数据}});JMenuItem allEdite = new JMenuItem("全选");allEdite.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {filetextArea.setSelectionStart(0); //设置文本域中选定文本的开始位置filetextArea.setSelectionEnd(filetextArea.getText().length()); //设置文本域中选定文本的结束位置}});editeMenu.add(copeEdite);editeMenu.add(cutEdite);editeMenu.add(stickEdite);editeMenu.add(allEdite);JMenuItem heplEdite = new JMenuItem("关于记事本");heplEdite.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {MyAbout myAbout = new MyAbout();myAbout.setVisible(true);}});helpMenu.add(heplEdite);final JScrollPane scrollPane = new JScrollPane();scrollPane.setBounds(0, 0, 404, 265);getContentPane().add(scrollPane);filetextArea = new JTextArea();scrollPane.setViewportView(filetextArea);}void openFile(ActionEvent e) {JFileChooser chooser = new JFileChooser(); // 用户选择文件的简单机制chooser.setCurrentDirectory(new File(".")); // 当前文件的目录chooser.addChoosableFileFilter(new FileFilter() { //添加文件选择过滤器public boolean accept(File f) { //只允许返回txt格式的文件return f.getName().toLowerCase().endsWith(".txt")|| f.isDirectory();}public String getDescription() { //在文件格式列表中显示txt return "txt(*.txt)";}});int r = chooser.showOpenDialog(this);if (r == JFileChooser.APPROVE_OPTION) {name = chooser.getSelectedFile().getPath();}}}MyAbout.javapackage com.mingrisoft.notebook;import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class MyAbout extends JFrame {/*** Launch the application* @param args*/public static void main(String args[]) {EventQueue.invokeLater(new Runnable() {public void run() {try {MyAbout frame = new MyAbout();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame*/public MyAbout() { //构造方法中设置窗体布局super();setTitle("关于记事本");setBounds(100, 100, 343, 222);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JPanel panel = new JPanel();panel.setLayout(null);getContentPane().add(panel, BorderLayout.CENTER);final JLabel label = new JLabel();label.setText("本程序JDK版本是1.6,开发工具为Eclipse,");label.setBounds(29, 41, 256, 46);panel.add(label);final JLabel label_1 = new JLabel();label_1.setText("主要通过IO流技术实现。

相关文档
最新文档