package cn325;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class NotePad extends JFrame implements ActionListener {
/**
*
* @param args
*/
private JMenuBar jmb;
private JMenu menu1, menu2, menu3, menu4, menu5;
private JMenuItem jmi1, jmi2, jmi3, jmi4, jmi5, jmi6, jmi7;
private JToolBar jtb;
private JToolBar jtb1;
private JLabel jl;
private JButton bu1, bu2, bu3, bu4, bu5;
private JTextArea jta;
private JScrollPane jsp;
// 构造函数 用来初始化
public NotePad() {
// 初始化
jmb = new JMenuBar();// 菜单栏
menu1 = new JMenu("文件F");// 各个菜单
//设置助记符
menu1.setMnemonic('F');
menu2 = new JMenu("编辑E");
menu3 = new JMenu("格式O");
menu4 = new JMenu("查看V");
menu5 = new JMenu("帮助H");
// 菜单项
jmi1 = new JMenuItem("新建 (N) Ctrl+N",new ImageIcon("image\\打开.jpg"));
jmi1.addActionListener(this);// 添加监听
jmi1.setActionCommand("新建");// 设置监听的命令
jmi2 = new JMenuItem("打开 (O) Ctrl+O",new ImageIcon("image\\打开.jpg"));
jmi2.addActionListener(this);
jmi2.setActionCommand("打开");
jmi3 = new JMenuItem("保存 (S) Ctro+S",new ImageIcon("image\\打开.jpg"));
jmi3.addActionListener(this);
jmi3.setActionCommand("保存");
jmi4 = new JMenuItem("另存为(A) ",new ImageIcon("image\\打开.jpg"));
jmi4.addActionListener(this);
jmi4.setActionCommand("另存为");
jmi5 = new JMenuItem("页面设置 ");
jmi6 = new JMenuItem("打印 (P) Ctrl+P");
jmi7 = new JMenuItem("退出 (X) ");
jmi7.addActionListener(this);
jmi7.setActionCommand("退出");
// 工具栏
jtb = new JToolBar();
jl = new JLabel(new ImageIcon("image/JPanel.jpg"));
jtb1 = new JToolBar();
jtb1.add(jl);
// 不可移动
jtb.setFloatable(false);
jtb1.setFloatable(false);
// 按钮
bu1 = new JButton("打开");
bu1.setToolTipText("用来打开文件");
bu1.addActionListener(this);
bu1.setActionCommand("打开");
bu2 = new JButton("保存");
bu2.setToolTipText("保存到当前文件中");
bu3 = new JButton("剪切");
bu3.setToolTipText("剪切选中到剪切板");
bu4 = new JButton("复制");
bu4.setToolTipText("复制选中到剪切板");
bu5 = new JButton("粘贴");
bu5.setToolTipText("粘贴剪切板中的内容到当前文件");
// 多行文本输入框
jta = new JTextArea();
// 滚动条
jsp = new JScrollPane(jta);
// 菜单栏添加菜单项
jmb.add(menu1);
jmb.add(menu2);
jmb.add(menu3);
jmb.add(menu4);
jmb.add(menu5);
// 将菜单项添加到菜单
menu1.add(jmi1);
menu1.add(jmi2);
menu1.add(jmi3);
menu1.add(jmi4);
menu1.addSeparator();
menu1.add(jmi5);
menu1.add(jmi5);
menu1.addSeparator();
menu1.add(jmi6);
menu1.add(jmi7);
// 工具栏添加按钮
jtb.add(bu1);
jtb.add(bu2);
jtb.add(bu3);
jtb.add(bu4);
this.setJMenuBar(jmb);
this.add(jtb, BorderLayout.NORTH);
this.add(jsp, BorderLayout.CENTER);
this.add(jtb1, BorderLayout.SOUTH);
// 设置基本属性
this.setTitle("我 的 记 事 本 ");//设置名字
this.setSize(600, 500);//设置大小
this.setLocationRelativeTo(null);//设置出现位置 居中
this.setCursor(Cursor.getPredefinedCursor(HAND_CURSOR));//设置当鼠标移动到此处时为手型
this.setIconImage(new ImageIcon("image\\张杰.jpg").getImage());
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public static void main(String[] args) {
NotePad nb = new NotePad();
}
@Override
public void actionPerformed(ActionEvent e) {
// 判断
if(e.getActionCommand().equals("新建")){
jta.setText(null);
}
else if (e.getActionCommand().equals("打开")) {
// 文件选择窗体
JFileChooser fc1 = new JFileChooser();
// 设置名字 此举要在显示对话框设置为默认属性前
fc1.setDialogTitle("打开文件");
//创建文件选择器对象
FileNameExtensionFilter filter=new FileNameExtensionFilter("文本文件(*.txt)", "txt");
//添加文件过滤器
fc1.setFileFilter(filter);
// 显示出来
fc1.setVisible(true);
//定义一个返回的值
int returnVal=fc1.showOpenDialog(null);
//如果选中了文件 就进行下一步
if( returnVal==JFileChooser.APPROVE_OPTION ){
// 获得选中的文件的全路径
String filepath = fc1.getSelectedFile().getAbsolutePath();
// 创建字符输出流对象
FileReader fr = null;
BufferedReader br = null;
try {
// 初始化输出流对象
fr = new FileReader(filepath);
br = new BufferedReader(fr);
String s = "";
String allCon = null;
while ((s = br.readLine()) != null) {
allCon += s + "\r\n";
}
jta.setText(allCon);
} catch (Exception e1) {
e1.printStackTrace();
} finally {
try {
br.close();
fr.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
} else if (e.getActionCommand().equals("另存为")) {
// 创建一个文件选择窗体
JFileChooser fc2 = new JFileChooser();
// 设置显示的对话框的名字
fc2.setDialogTitle("另存为");
//创建文件选择器对象
FileNameExtensionFilter filter=new FileNameExtensionFilter(null, ".txt");
//添加文件过滤器
fc2.setFileFilter(filter);
// 设置可见
fc2.setVisible(true);
//定义一个返回的值
int returnVal=fc2.showSaveDialog(null);
//如果选中了文件 就进行下一步
if(returnVal==JFileChooser.APPROVE_OPTION){
//取得选中文件的绝对路径
String filepath = fc2.getSelectedFile().getAbsolutePath();
// 创建字符流输出对象
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter(filepath);
bw = new BufferedWriter(fw);
bw.write(jta.getText());
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
bw.close();
fw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
} else if(e.getActionCommand().equals("退出")){
System.exit(0);
}
}
}
代码可能有点烂,还没有将一些组件重写,进行简单封装,只是将基本的组件写到同一个类中。
- 大小: 62 KB
- 大小: 57.7 KB
- 大小: 78.2 KB
分享到:
相关推荐
《Memo记事本 1.0.1.0:打造高效便捷的文本管理工具》 在信息化时代,人们日常工作中需要处理的信息量日益庞大,如何有效地管理这些信息变得至关重要。 Memo 记事本 1.0.1.0 正是这样一款针对这一需求而设计的增强...
【原创】记事本1.0.0.39是一款由独立开发者xiefi于2014年1月25日发布的免费绿色软件。这款记事本工具不同于常见的操作系统自带的记事本程序,它提供了更为实用的功能,并且特别强调了其无须安装和无任何限制的特点,...
"天网联盟专用记事本 1.0绿色版" 是一个专为天网联盟设计的文本编辑工具,它的出现旨在提供一个美观且实用的记录平台,帮助用户在Windows操作系统中方便地处理日常的文本编辑任务。作为一个轻量级的应用程序,这个...
破解者记事本1.0.exe我也不知道这是什么东东,就是想收藏。
【JS+HTM自制挂历记事本1.0】是一款集成了挂历和记事功能的个人管理工具,同时也包含了一个简易的个人播放器,旨在帮助用户方便地记录日常生活中的重要事项,规划时间,并享受音乐。这款应用充分利用了JavaScript...
《Nancy系列之-记事本1.0》是一款基于MFC(Microsoft Foundation Classes)库开发的简单记事本程序,旨在模仿Windows操作系统内置的记事本功能,为用户提供便捷的文字编辑体验。在这个项目中,我们将深入探讨MFC库、...
标题中的“记事本1.0 工程:WIN32 SDK”指的是一个基于Windows API开发的简单文本编辑器项目,使用的是Windows SDK(Software Development Kit)。Windows SDK为开发者提供了编写Windows应用程序所需的头文件、库...
仿Windows记事本1.0版 源码 仿windows做的记事本,很好看 待解决的问题: 1、查找时,如果保持查找窗口的活动状态,则编辑框的选择文本无法显示选择标记; 2、替换文本之后,无法使用TextBox和Undo撤消更改。 3、...
记事本1.0是一款非常小巧实用的加密记事本软件,无需安装,下载后可直接使用。它采用了特定的算法和编码对文本内容进行了加密,不仅具有 windows 记事本的全部功能而且还具有顶级的加密功能,让您隐私内容的安全性...
一款加强型记事本,自制,360会报毒【无毒,不会窃取资料和破坏电脑,但是不强求下载】。
杰佳多功能记事本(电脑记事本软件)是一款绿色免费的由杰佳软件工作室制作的的记事本软件。软件功能强大,功能不仅限于记事本,还集成了系统常用的命令于一体,是各行业都适用的电脑记事本软件。 杰佳多功能记事本...
本源码是一个基于CS模式开发的一个简易的记事本,模仿系统自带的记事本程序,可以实现基本的txt文档的编辑、保存、另存为、字体的更换等等功能,是初学者的一个很好范例,可以作为课程设计使用。主要功能:1、文件:...
功能非常的有限,只实现了打开文件和保存文件的功能 主要是练习I/O里的BufferedReader,PrintWriter,和事件处理:监听,绑定,以及actionPerformed JAR程序,源码都附上,源码自己加上包名即可。...
模仿windows自带记事本使用MFC编写,简单,快捷!
本人创作的第一记事本程序 由于第一次创作 功能少了点 2个…… 嘿嘿 也勉强多功能吧 另外 BUG可能存在 有的话请发送报道至943183575@qq.com 我的QQ邮箱 谢谢了 以后还会做更新的版本的 敬请大家期待 快下载吧!...
Fly记事本1.0版本 C#记事本源码-附件资源
"广优简易记事本 1.0"是一款专注于简单记事功能的应用程序,它提供了高效的方式来管理和跟踪各种事项。这款软件的核心特性包括系统编号、处理情况、事件状态、开始时间、剩余时间、事件地址以及事件说明等关键信息,...