这是一个java编写的记事本
package net.etwo.notepad;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
import javax.swing.filechooser.FileNameExtensionFilter;
/**
*
* @author etwo
* @version 1.0
*
*/
public class TestNotepad {
private JFrame jframe;// 主窗体
JPanel jpanel;// 面板
JMenuBar jmenuBar = new JMenuBar();// 菜单面板
JMenu jmenuFile, jmenuEdit;// 主菜单
JMenuItem jmenuItemOpen, jmenuItemNew, jmenuItemSave, jmenuItemSaveAs,
jmenuItemExit;// 菜单中的子菜单
JTextArea jtextArea;// 文本框
JScrollPane jscrollPane;// 带滑动条的
JFileChooser jfileChooser;//文件选择器
File currentFile;
public TestNotepad() {
// TODO Auto-generated constructor stub
jframe = new JFrame("我的记事本");
jpanel = new JPanel();
jmenuBar = new JMenuBar();
jtextArea = new JTextArea();
jtextArea.setLineWrap(true);//设置自动换行
jscrollPane = new JScrollPane(jtextArea);
jfileChooser = new JFileChooser();
jfileChooser.setFileFilter(new FileNameExtensionFilter("文本文件(*.txt)", "txt"));
jmenuFile = new JMenu("文件(F)");
jmenuFile.setMnemonic('F');
jmenuEdit = new JMenu("编辑(E)");
jmenuEdit.setMnemonic('E');
jmenuItemNew = new JMenuItem("新建(N)", 'N');
jmenuItemNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK));
jmenuItemOpen = new JMenuItem("打开(O)", 'O');
jmenuItemOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK));
jmenuItemOpen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int res = jfileChooser.showOpenDialog(jframe);
if(res == jfileChooser.APPROVE_OPTION) {
currentFile = jfileChooser.getSelectedFile();
jtextArea.setText("");
openFile(currentFile);
jframe.setTitle(currentFile + "-记事本");
System.out.println("s");
}
}
});
jmenuItemSave = new JMenuItem("保存(S)", 'S');
jmenuItemSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
jmenuItemSave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
saveFile();
}
});
jmenuItemSaveAs = new JMenuItem("另存为(A)", 'A');
jmenuItemSaveAs.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int res = jfileChooser.showSaveDialog(jframe);
if(res == jfileChooser.APPROVE_OPTION) {
currentFile = jfileChooser.getSelectedFile();
jframe.setTitle(currentFile + "-记事本");
saveFileAs(currentFile, jtextArea.getText().replaceAll("\n", "\r\n"));
}
}
});
jmenuBar.add(jmenuFile);
jmenuBar.add(jmenuEdit);
jmenuFile.add(jmenuItemNew);
jmenuFile.add(jmenuItemOpen);
jmenuFile.add(jmenuItemSave);
jmenuFile.add(jmenuItemSaveAs);
jpanel.setLayout(new BorderLayout(2, 1));
jpanel.add(jmenuBar, "North");
jpanel.add(jscrollPane, "Center");
jframe.add(jpanel);
jframe.setSize(500, 500);
jframe.setLocationRelativeTo(null);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}
public void saveFile() {
if(currentFile == null) {
int res = jfileChooser.showSaveDialog(jframe);
if(res == jfileChooser.APPROVE_OPTION) {
currentFile = jfileChooser.getSelectedFile();
jframe.setTitle(currentFile + "-记事本");
}
}
if(currentFile != null) {
saveFileAs(currentFile, jtextArea.getText().replaceAll("\n", "\r\n"));
}
}
public void saveFileAs(File file, String text) {
PrintWriter pw = null;
try {
pw = new PrintWriter(file);
pw.write(text);
pw.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(pw != null) {
pw.close();
}
}
}
public void openFile(File file) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String str = br.readLine();
while (str != null) {
jtextArea.append(str + "\n");
System.out.println(str);
str = br.readLine();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if(br != null) {
br.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new TestNotepad();
}
}
分享到:
相关推荐
在本项目中,"java编写记事本.zip"是一个包含Java编程实现的简易记事本程序。这个记事本程序不仅具有基本的文字编辑功能,还特别加入了右键弹出菜单,以及查找和替换功能,虽然查找功能在界面中未直接展示,但其逻辑...
关于记事本的编辑,里面有查找替换,字体,颜色。不过对于对齐方式自己设计的不怎么行
JAVA编写记事本程序,已做好!!!!!!!!!!!!!!!1
在Java中编写记事本程序涉及到许多关键知识点,主要包括: 1. **基础语法与控制结构**:Java的基础语法包括变量声明、数据类型、运算符、流程控制(如if语句、for循环、while循环等)。这些是任何Java程序的基础,...
Java编写记事本.jar
"用java编写记事本"这个项目涵盖了多个Java核心技术,包括Swing库用于构建用户界面,以及IO流处理进行文件的读写操作。下面我们将深入探讨这些知识点。 首先,`Swing`是Java提供的一套丰富的组件库,用于构建桌面...
【标题】:“java编写的记事本” 在IT领域,编程语言Java被广泛应用于各种软件开发,包括桌面应用。这个“java编写的记事本”项目就是一个实例,它利用Java的强大功能来实现基本的文本编辑操作,类似于我们常见的...
强大的记事本,功能齐全,新建 打开 保存 退出 复制 粘贴 剪切 删除 全选 时间 字体 自动换行 帮助 关于等待
标题中的“目前网上最详细的java编写的记事本程序”表明这是一个使用Java编程语言实现的类似于Windows记事本的应用程序。这个程序旨在模仿并扩展Windows记事本的基本功能,可能是为了教学、练习或是个人项目的需求。...
从给定的文件信息,我们可以看到,这是一个 Java 编写的记事本程序,涉及到图形界面编程、事件处理、文件读写等多方面的知识点。下面,我们将对这些知识点进行详细的解释和总结。 图形界面编程 在 Java 中,图形...
在本主题中,我们将深入探讨如何使用Java来编写一个基本的记事本程序。这个程序,如标题所述,可以作为一个实用工具,允许用户创建、编辑和保存文本文件,类似于我们日常使用的桌面记事本应用程序。 首先,我们需要...
【标题】:“JAVA编写的记事本程序” 在IT领域,Java是一种广泛应用的高级编程语言,以其跨平台、面向对象的特性而闻名。本项目是一个使用Java开发的记事本程序,它允许用户进行基本的文字编辑操作,如新建、打开、...
Java编写的记事本程序源码是一个开源项目,旨在实现类似Windows系统内置记事本的功能。这个程序展示了Java编程语言在构建桌面应用程序方面的应用。Java以其“一次编写,到处运行”的特性,使得此记事本程序可以在...
【Java编写的记事本程序】是一个利用Java编程语言实现的简单文本编辑器,它提供了基本的文本编辑功能,如更改字体、字号和字形,同时也具有良好的代码注释,便于学习和理解。这个程序是Java初学者或者对GUI编程感...
java 2 se编写的一个小程序,比较简单,使用等等等等特点。
用java编写的记事本功能,有粘贴复制全选,字体的设置,实现了保存,另存为等功能。
总的来说,这个Java编写的记事本源代码是一个很好的学习资源,涵盖了GUI编程、文件操作、事件处理等多个Java核心概念。对于想要深入学习Java桌面应用开发的人来说,它提供了实践和理解这些概念的实例。
Java编写的记事本源码是一个基础但实用的编程示例,它展示了如何利用Java语言实现文本编辑器的功能。这个记事本程序包含了常见的文本编辑操作,如打开、写入、修改和复制文件,这些都是日常计算机用户在处理文本时...
编写用户手册,详细介绍记事本的使用方法,帮助用户快速上手。同时,记录开发过程中的问题和解决方案,为后续维护和改进提供参考。 通过这个项目,你不仅可以提升Java编程技能,还能深入理解文件I/O、GUI编程和...
Java记事本是一款基于Java编程语言开发的全功能文本编辑器,它旨在提供与Windows操作系统内置的记事本相似甚至更多的功能。通过使用Java,这款记事本应用程序具备跨平台特性,可以在安装了Java运行环境的任何操作...