下载 >  开发技术 >  Java > java编写记事本

java编写记事本

强大的记事本,功能齐全,新建 打开 保存 退出 复制 粘贴 剪切 删除 全选 时间 字体 自动换行 帮助 关于等待
2011-11-16 上传大小:11KB
分享
收藏 举报
java编写记事本,基本功能都实现了啊!

import java.awt.BorderLayout; import java.awt.Container; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import javax.swing.BorderFactory; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.KeyStroke; import javax.swing.ScrollPaneConstants; import javax.swing.SwingConstants; public class JNotePadUI extends JFrame { private JMenuItem menuOpen; private JMenuItem menuSave; private JMenuItem menuSaveAs; private JMenuItem menuClose; private JMenu editMenu; private JMenuItem menuCut; private JMenuItem menuCopy; private JMenuItem menuPaste; private JMenuItem menuAbout; private JTextArea textArea; private JLabel stateBar; private JFileChooser fileChooser; private JPopupMenu popUpMenu; public JNotePadUI() { super("新建文本文件"); setUpUIComponent(); setUpEventListener(); setVisible(true); } private void setUpUIComponent() { setSize(640, 480); // 菜单栏 JMenuBar menuBar = new JMenuBar(); // 设置「文件」菜单 JMenu fileMenu = new JMenu("文件"); menuOpen = new JMenuItem("打开"); // 快捷键设置 menuOpen.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_O, InputEvent.CTRL_MASK)); menuSave = new JMenuItem("保存"); menuSave.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, InputEvent.CTRL_MASK)); menuSaveAs = new JMenuItem("另存为"); menuClose = new JMenuItem("关闭"); menuClose.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_Q, InputEvent.CTRL_MASK)); fileMenu.add(menuOpen); fileMenu.addSeparator(); // 分隔线 fileMenu.add(menuSave); fileMenu.add(menuSaveAs); fileMenu.addSeparator(); // 分隔线 fileMenu.add(menuClose); // 设置「编辑」菜单 JMenu editMenu = new JMenu("编辑"); menuCut = new JMenuItem("剪切"); menuCut.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK)); menuCopy = new JMenuItem("复制"); menuCopy.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)); menuPaste = new JMenuItem("粘贴"); menuPaste.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)); editMenu.add(menuCut); editMenu.add(menuCopy); editMenu.add(menuPaste); // 设置「关于」菜单 JMenu aboutMenu = new JMenu("关于"); menuAbout = new JMenuItem("关于JNotePad"); aboutMenu.add(menuAbout); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(aboutMenu); setJMenuBar(menuBar); // 文字编辑区域 textArea = new JTextArea(); textArea.setFont(new Font("宋体", Font.PLAIN, 16)); textArea.setLineWrap(true); JScrollPane panel = new JScrollPane(textArea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); Container contentPane = getContentPane(); contentPane.add(panel, BorderLayout.CENTER); // 状态栏 stateBar = new JLabel("未修改"); stateBar.setHorizontalAlignment(SwingConstants.LEFT); stateBar.setBorder( BorderFactory.createEtchedBorder()); contentPane.add(stateBar, BorderLayout.SOUTH); popUpMenu = editMenu.getPopupMenu(); fileChooser = new JFileChooser(); } private void setUpEventListener() { // 按下窗口关闭钮事件处理 addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { closeFile(); } } ); // 菜单 - 打开 menuOpen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { openFile(); } } ); // 菜单 - 保存 menuSave.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { saveFile(); } } ); // 菜单 - 另存为 menuSaveAs.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { saveFileAs(); } } ); // 菜单 - 关闭文件 menuClose.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { closeFile(); } } ); // 菜单 - 剪切 menuCut.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { cut(); } } ); // 菜单 - 复制 menuCopy.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { copy(); } } ); // 菜单 - 粘贴 menuPaste.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { paste(); } } ); // 菜单 - 关于 menuAbout.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // 显示对话框 JOptionPane.showOptionDialog(null, "程序名称:\n JNotePad \n" + "程序设计:\n \n" + "简介:\n 一个简单的文字编辑器\n" + " 可作为验收Java的实现对象\n" + " 欢迎网友下载研究交流\n\n" + " /", "关于JNotePad", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); } } ); // 编辑区键盘事件 textArea.addKeyListener( new KeyAdapter() { public void keyTyped(KeyEvent e) { processTextArea(); } } ); // 编辑区鼠标事件 textArea.addMouseListener( new MouseAdapter() { public void mouseReleased(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON3) popUpMenu.show(editMenu, e.getX(), e.getY()); } public void mouseClicked(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON1) popUpMenu.setVisible(false); } } ); } private void openFile() { if(isCurrentFileSaved()) { // 文件是否为保存状态 open(); // 打开 } else { // 显示对话框 int option = JOptionPane.showConfirmDialog( null, "文件已修改,是否保存?", "保存文件?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null); switch(option) { // 确认文件保存 case JOptionPane.YES_OPTION: saveFile(); // 保存文件 break; // 放弃文件保存 case JOptionPane.NO_OPTION: open(); break; } } } private boolean isCurrentFileSaved() { if(stateBar.getText().equals("未修改")) { return false; } else { return true; } } private void open() { // fileChooser 是 JFileChooser 的实例 // 显示文件选取的对话框 int option = fileChooser.showDialog(null, null); // 使用者按下确认键 if(option == JFileChooser.APPROVE_OPTION) { try { // 开启选取的文件 BufferedReader buf = new BufferedReader( new FileReader( fileChooser.getSelectedFile())); // 设定文件标题 setTitle(fileChooser.getSelectedFile().toString()); // 清除前一次文件 textArea.setText(""); // 设定状态栏 stateBar.setText("未修改"); // 取得系统相依的换行字符 String lineSeparator = System.getProperty("line.separator"); // 读取文件并附加至文字编辑区 String text; while((text = buf.readLine()) != null) { textArea.append(text); textArea.append(lineSeparator); } buf.close(); } catch(IOException e) { JOptionPane.showMessageDialog(null, e.toString(), "开启文件失败", JOptionPane.ERROR_MESSAGE); } } } private void saveFile() { // 从标题栏取得文件名称 File file = new File(getTitle()); // 若指定的文件不存在 if(!file.exists()) { // 执行另存为 saveFileAs(); } else { try { // 开启指定的文件 BufferedWriter buf = new BufferedWriter( new FileWriter(file)); // 将文字编辑区的文字写入文件 buf.write(textArea.getText()); buf.close(); // 设定状态栏为未修改 stateBar.setText("未修改"); } catch(IOException e) { JOptionPane.showMessageDialog(null, e.toString(), "写入文件失败", JOptionPane.ERROR_MESSAGE); } } } private void saveFileAs() { // 显示文件对话框 int option = fileChooser.showSaveDialog(null); // 如果确认选取文件 if(option == JFileChooser.APPROVE_OPTION) { // 取得选择的文件 File file = fileChooser.getSelectedFile(); // 在标题栏上设定文件名称 setTitle(file.toString()); try { // 建立文件 file.createNewFile(); // 进行文件保存 saveFile(); } catch(IOException e) { JOptionPane.showMessageDialog(null, e.toString(), "无法建立新文件", JOptionPane.ERROR_MESSAGE); } } } private void closeFile() { // 是否已保存文件 if(isCurrentFileSaved()) { // 释放窗口资源,而后关闭程序 dispose(); } else { int option = JOptionPane.showConfirmDialog( null, "文件已修改,是否保存?", "保存文件?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null); switch(option) { case JOptionPane.YES_OPTION: saveFile(); break; case JOptionPane.NO_OPTION: dispose(); } } } private void cut() { textArea.cut(); stateBar.setText("已修改"); popUpMenu.setVisible(false); } private void copy() { textArea.copy(); popUpMenu.setVisible(false); } private void paste() { textArea.paste(); stateBar.setText("已修改"); popUpMenu.setVisible(false); } private void processTextArea() { stateBar.setText("已修改"); } public static void main(String[] args) { new JNotePadUI(); } }

立即下载
java 编写的简易记事本

java 编写的简易记事本 java 编写的简易记事本 java 编写的简易记事本 java 编写的简易记事本 java 编写的简易记事本

立即下载
java写的记事本源代码

用java写windows记事本源代码,具体功能如下: 1.文件(F) 可以通过点击菜单或快捷键(alt + F)打开菜单页 1.1新建(N) 菜单内点击或助记符N或快捷键(ctrl + N) 点击后弹出对话框,询问是否保存到***.txt? 点击保存(S):保存文本并关闭,再新建新的文本 点击不保存(N):不保存文本并关闭,再新建新的文本 点击取消:取消新建操作 1.2打开(O) 菜单内点击或助记符O或快捷键(ctrl + O) 点击后弹出对话框,询问是否保存到***.txt? 点击保存(S):保存文本,弹出选择文件对话框 点击不保存(N):不保存文本,弹出选择文件对话框 ==》选择文件对话框: 选择打开(O):就打开新的文本 选择取消:取消打开操作,返回原文本 点击取消:取消打开操作 1.3保存(S) 菜单内点击或助记符S或快捷键(ctrl + S) 点击后保存文本内容 1.4另存为(A) 菜单内点击或助记符A 点击后打开另存为对话框,选择路径和设置文件名 选择保存(S):就会在该路径保存文本,原文本内容不会保存并关闭,打开另存的文本 取消:取消另存为操作,返回原文本 1.5页面设置(U)(只实现页面边距,其他未实现) 菜单内点击或助记符U 点击后打开页面设置对话框:可以设置一下内容 纸张:大小(Z)、来源(S) 方向:纵向(O)、横向(A) 页面边距(毫米):左(L)右(R)上(T)下(B) 页眉(H)、页脚(F)、预览:(图片) 选择确定:保存新的页面设置 选择取消:取消页面设置 1.6打印(P)(改功能未完全实现,使用可能会报错) 菜单内点击或助记符P或快捷键(ctrl + P) 点击后弹出打印对话框 1.7退出(X) 菜单内点击或助记符X 点击后退出本文本文件 2.编辑(E) 可以通过点击菜单或快捷键(alt + E)打开菜单页 2.1撤销(U) 菜单内点击或助记符U或快捷键(ctrl + Z) 响应后返回上一步操作 2.2剪切(T) 菜单内点击或助记符T或快捷键(ctrl + X) 响应后光标选中的内容提取到剪贴板,并删除该内容,光标定位在元初识位置 2.3复制(C) 菜单内点击或助记符C或快捷键(ctrl + C) 响应后光标选中内容提取到剪贴板,光标位置保持不变 2.4粘贴(P) 菜单内点击或助记符P或快捷键(ctrl + V) 响应后光标选中的内容被替换为剪贴板的内容,光标选中刚刚粘贴的内容 2.5删除(L) 菜单内点击或助记符L或快捷键(DEL) 响应后删除光标选中的内容 2.6查找(F) 菜单内点击或助记符F或快捷键(ctrl + F) 响应后弹出查找对话框:输入查找的内容,可以选择区分大小写和选择查找的方向 点击查找之后光标会选中响应的查找内容,没找到会弹出找不到对话框 2.7查找下一个(N) 菜单内点击或助记符N或快捷键(F3) 查找框有内容就直接查找贯标位置以后的内容,查找框没有内容直接弹出查找框 2.8替换(R) 菜单内点击或助记符R或快捷键(ctrl + H) 弹出替换对话框,有全部替换和替换当前两种 当前替换:替换光标选中的内容,光标移动到下一个查找内容上 2.9转到(G) 菜单内点击或助记符G或快捷键(ctrl + G) 在自动换行未选中的情况下,点击之后弹出转到指定行对话框 2.10全选(A) 菜单内点击或助记符A或快捷键(ctrl + A) 响应后选中全部文本内容 2.11时间/日期(D) 菜单内点击或助记符D或快捷键(F5) 在光标选中的内容里修改为当前时间 3.格式(O) 可以通过点击菜单或快捷键(alt + O)打开菜单页 3.1自动换行(W) 菜单内点击或助记符W 选中后,文本会自动换行,且不能点击查看状态栏和转到菜单 3.2字体(F) 菜单内点击或助记符F 弹出字体对话框:可以选择字体(F)、字形(Y)大小(S) 拥有示例和选择脚本,确定后更改全部字体 4.查看(V) 可以通过点击菜单或快捷键(alt + V)打开菜单页 4.1状态栏(S) 菜单内点击或助记符S 在底部会显示光标的起始坐标,第几行第几列 5.帮助(H) 可以通过点击菜单或快捷键(alt + H)打开菜单页 5.1查看帮助(H) 菜单内点击或助记符H 点击弹出帮助文本 5.2关于记事本(A)、 菜单内点击或助记符A 点击弹出关于记事本的对话框 显示它的版本信息

立即下载
记事本打印和页面设置功能Java实现

开放之用,希望大家多多交流,互相促进,谢谢了!

立即下载
JAVA简单记事本程序设计实验报告(带源码)

JAVA简单记事本程序设计实验报告(带源码) 课题:学生成绩管理 4.功能要求: 编写一个简单记事本程序,要求包含以下菜单项 文件 新建、打开、保存、退出 编辑 剪切、拷贝、粘贴、查找 帮助 关于 5.实现文件和编辑菜单里的功能

立即下载
Eclipse编写的简单记事本

包括记事本菜单和字体编辑对话框,使用者可选择不同的字体、字型、大小等修改字体!<br>

立即下载
Java基于SWT编写记事本

Java基于SWT开发桌面应用程序记事本,与桌面记事本一模一样,可实现基础的所有功能,内附源码,可执行文件,以及开发随笔手册,资源纯手工制作出来的。希望对大家有所帮助

立即下载
java实现的仿windows记事本小程序

java实现的仿windows记事本小程序,提供给大家参考学习

立即下载
Java开发记事本(完整版)

java基础开发的记事本,给大家借鉴一下

立即下载
关于记事本字体大小和颜色设置代码

该记事本实现了字体大小自由设置,颜色设置,删除,复制。打开,保存。在把那几张图片放在项目里面就可以看了到图片了。

立即下载
java模仿window平台的NotePad,编写的一个简单的“记事本”程序

在网上看到的一段代码,我把它建成了工程,方便大家使用,只能在此声明,代码不是我的。

立即下载
java代码做的记事本

一个java编写的记事本一个java编写的记事本一个java编写的记事本

立即下载
Java Swing界面编写的简单的记事本

用java写的一个 Swing 界面的 记事本,拥有文件打开 保存等基本功能,还有查找替换 以及 更换字体等功能。

立即下载
记事本编写的贪吃蛇

记事本编写的小游戏,用记事本打开可以看源代码

立即下载
java日历记事本源代码(多种实现)

java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)java日历记事本源代码(多种实现)

立即下载
Java开发的记事本(完整版源代码)

Java开发的记事本(完整版源代码) java基础开发的记事本,给大家借鉴一下

立即下载
JAVA编写的日历记事本 实现日历及记事本功能

这是一个用JAVA编译的记事本代码 实现万年历,记事本等功能

立即下载
Java课程设计日历记事本

Java课程设计日历记事本,包含实验报告和程序源代码,用户可以根据里面的说明书部署安排程序,也有源程序可以直接让用户运行体验。

立即下载
Java模拟Windows下的记事本

用Java语言模拟Windows下的记事本功能的源代码,实现了基本的文件新建,打开,编辑,保存,复制,粘贴等基础功能

立即下载
一个可用记事本编写的JAVA小程序-扫雷

源代码形式的扫雷源码,可以添加,动态修改其功能

立即下载
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

java编写记事本

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: