这是一个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编写记事本,实现了右键弹出菜单,替换及查找实现了界面未实现真是功能,其他功能可使用
关于记事本的编辑,里面有查找替换,字体,颜色。不过对于对齐方式自己设计的不怎么行
JAVA编写记事本程序,已做好!!!!!!!!!!!!!!!1
Java编写记事本.jar
JAVA编写的记事本源程序
用java编写记事本,其中可以打开、保存、另存为、换行等功能
强大的记事本,功能齐全,新建 打开 保存 退出 复制 粘贴 剪切 删除 全选 时间 字体 自动换行 帮助 关于等待
Java编写的记事本程序,非常好的东西。
用Java写的记事本,新建,打开,保存,另存为,字体,剪切,复制,粘贴,等功能
掌握编写图形界面的方法,包括菜单、布局管理器、滚动条、弹出提示信息对话框、输入对话框、打开文件对话框、保存文件对话框、事件处理,以及文本文件的读写
自己参考目前很多现有记事本写的,基本实现windows上的记事本的大部分功能,经过一些优化,包括禁用右键,打开其他程序,还有些下缺陷,将在之后修改
用java编写的记事本程序,具有改写字体,大小,字形功能,注释详细
java 2 se编写的一个小程序,比较简单,使用等等等等特点。
用java编写的记事本功能,有粘贴复制全选,字体的设置,实现了保存,另存为等功能。
java实现简单的记事本程序
使用Java开发的记事本程序,内含多个版本,源码,打包方法
这是一个用Java编写的完全模仿Windows上的记事本的程序,虽然程序还没有完全完成,但是基本上所有功能都有了,欢迎下载共享
编写一个记事本程序,要求:使用图形界面实现,能实现编辑,保存,另存为,查询替换等功能(提示:使用文件输入输出流),并写下设计过程和感受
程序一是用java编写的一个记事本,并可以对文件进行新建,编辑和帮助等功能。同时子目录下页具有打开,保存;复制,剪切,粘贴;最后退出文件等功能。 程序二则是建立一个桌面应用程序,在文本区域内输出杨辉三角。