Posted on 2009-06-28 22:06
London2012 阅读(153)
评论(0) 编辑 收藏 所属分类:
CODE
以后要注意写注释。
写得不好,高手指正,程序较简单,预习流而写。
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
public class NoteBookJFrame extends javax.swing.JFrame implements
ActionListener {
private JMenuBar jMenuBar1;
private JMenuItem openMenu;
private JMenuItem otherSavaMenu;
private JMenuItem cutMenu;
private JScrollPane jScrollPane1;
private JTextArea jTextArea1;
private JMenuItem aboutMenu;
private JMenu helpMenu;
private JMenuItem allsMenu;
private JMenuItem reMenu;
private JMenuItem findMenu;
private JSeparator jSeparator3;
private JMenuItem deleteMenu;
private JMenuItem pasteMenu;
private JMenuItem copyMenu;
private JSeparator jSeparator2;
private JMenuItem passMenu;
private JMenu editMenu;
private JMenuItem cancelMenu;
private JSeparator jSeparator1;
private JMenuItem savaMenu;
private JMenuItem newMenu;
private JMenu jMenu1;
//存储文件的path,在“打开”中获取,在“保存”中使用
String filename;
//存储文件的复制信息
String copy;
//给撤销功能使用,存储删除、剪切、粘贴操作之前jTextArea中的数据
String pass;
static String reString; //
/**//*查找文件方法,失败*/
// int findIndex = 0 ;
// public void find(String str, int cur)
// {
// int i = jTextArea1.getText().indexOf(str,cur);
// if (i >= 0 )
// {
// this.jTextArea1.setSelectionStart(i); // 使找到的字符串反白选中
// this.jTextArea1.setSelectionEnd(i + str.length());
// findIndex =++ i; // 用于查找下一个
// }
// else
// {
// JOptionPane.showMessageDialog( this , " 查找完毕! " , " 记事本 " ,
// JOptionPane.OK_OPTION + JOptionPane.INFORMATION_MESSAGE);
// }
// }
/**//*查找文件方法end*/
/** *//**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
NoteBookJFrame inst = new NoteBookJFrame();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public NoteBookJFrame() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setTitle("\u8bb0\u4e8b\u672c\u7a0b\u5e8f");
getContentPane().setLayout(null);
{
jScrollPane1 = new JScrollPane();
getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(0, 0, 512, 348);
{
jTextArea1 = new JTextArea();
jScrollPane1.setViewportView(jTextArea1);
// jTextArea1.setBounds(0, 64, 512, 348);
}
}
{
jMenuBar1 = new JMenuBar();
setJMenuBar(jMenuBar1);
{
jMenu1 = new JMenu();
jMenuBar1.add(jMenu1);
jMenu1.setText("\u6587\u4ef6");
{
newMenu = new JMenuItem();
jMenu1.add(newMenu);
newMenu.setText("\u65b0\u5efa");
newMenu.addActionListener(this);
}
{
openMenu = new JMenuItem();
jMenu1.add(openMenu);
openMenu.setText("\u6253\u5f00");
openMenu.addActionListener(this);
}
{
savaMenu = new JMenuItem();
jMenu1.add(savaMenu);
savaMenu.setText("\u4fdd\u5b58");
savaMenu.addActionListener(this);
}
{
otherSavaMenu = new JMenuItem();
jMenu1.add(otherSavaMenu);
otherSavaMenu.setText("\u53e6\u5b58\u4e3a");
otherSavaMenu.addActionListener(this);
}
{
jSeparator1 = new JSeparator();
jMenu1.add(jSeparator1);
}
{
cancelMenu = new JMenuItem();
jMenu1.add(cancelMenu);
cancelMenu.setText("\u9000\u51fa");
cancelMenu.addActionListener(this);
}
}
{
editMenu = new JMenu();
jMenuBar1.add(editMenu);
editMenu.setText("\u7f16\u8f91");
{
passMenu = new JMenuItem();
editMenu.add(passMenu);
passMenu.setText("\u64a4\u9500");
passMenu.addActionListener(this);
}
{
jSeparator2 = new JSeparator();
editMenu.add(jSeparator2);
}
{
cutMenu = new JMenuItem();
editMenu.add(cutMenu);
cutMenu.setText("\u526a\u5207");
cutMenu.addActionListener(this);
}
{
copyMenu = new JMenuItem();
editMenu.add(copyMenu);
copyMenu.setText("\u590d\u5236");
copyMenu.addActionListener(this);
}
{
pasteMenu = new JMenuItem();
editMenu.add(pasteMenu);
pasteMenu.setText("\u7c98\u8d34");
pasteMenu.addActionListener(this);
}
{
deleteMenu = new JMenuItem();
editMenu.add(deleteMenu);
deleteMenu.setText("\u5220\u9664");
deleteMenu.addActionListener(this);
}
{
jSeparator3 = new JSeparator();
editMenu.add(jSeparator3);
}
{
findMenu = new JMenuItem();
editMenu.add(findMenu);
findMenu.setText("\u67e5\u627e");
findMenu.addActionListener(this);
}
{
reMenu = new JMenuItem();
editMenu.add(reMenu);
reMenu.setText("\u66ff\u6362");
reMenu.addActionListener(this);
}
{
allsMenu = new JMenuItem();
editMenu.add(allsMenu);
allsMenu.setText("\u5168\u9009");
allsMenu.addActionListener(this);
}
}
{
helpMenu = new JMenu();
jMenuBar1.add(helpMenu);
helpMenu.setText("\u5e2e\u52a9");
{
aboutMenu = new JMenuItem();
helpMenu.add(aboutMenu);
aboutMenu.setText("\u5173\u4e8e\u8bb0\u4e8b\u672c");
aboutMenu.addActionListener(this);
}
}
}
pack();
this.setSize(517, 406);
this.setResizable(false);
} catch (Exception e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if ("关于记事本".equals(comm)) {
JOptionPane.showMessageDialog(this, "版本信息1.1 谢谢!");
}
if ("退出".equals(comm)) {
System.exit(1);
}
if ("新建".equals(comm)) {
jTextArea1.setText("");
}
if ("打开".equals(comm)) {
/**//*------------ 第一种方法 --------------*/
// FileDialog d = new FileDialog(this, "打开文件", FileDialog.LOAD);
// d.setVisible(true);
// File f = null;
// f = new File(d.getDirectory() + d.getFile());
// // 读取文件到编辑区
// filename=f.getPath();
// for (int i = 0; i <= f.length(); i++) {
// char[] ch = new char[i];
// try {
// FileReader fr = new FileReader(f);
// fr.read(ch);
// String str = new String(ch);
// jTextArea1.setText(str);
//
// } catch (FileNotFoundException e1) {
// e1.printStackTrace();
// } catch (IOException e1) {
// e1.printStackTrace();
// }
// }
/**//*------------ end --------------*/
/**//*------------ 第二种方法 --------------*/
JFileChooser jfc=new JFileChooser();
jfc.setCurrentDirectory(new File("c:"));//设置当前目录
//APPROVE_OPTION标识用于确认(yes、ok)按钮的工具提示文本的更改
if(jfc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){
File f=new File(jfc.getSelectedFile().getPath());
for (int i = 0; i <= f.length(); i++) {
char[] ch = new char[i];
try {
FileReader fr = new FileReader(f);
fr.read(ch);
String str = new String(ch);
jTextArea1.setText(str);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
// fname=jfc.getSelectedFile().getName();
// txtFIieName.setText(fname);
// filename=jfc.getSelectedFile().getPath();
// System.out.println(path);
/**//*----------- end ------------*/
}
}
if ("保存".equals(comm)) {
// System.out.println(filename);
if(null==filename){//如果是新建文件,提示执行“另存为”
JOptionPane.showMessageDialog(this, "这是新的文档,请执行\"另存为\"保存");
}else{
try {
FileOutputStream fout = new FileOutputStream(filename);
byte bb[] = jTextArea1.getText().getBytes();//getBytes()解码为字节序列
fout.write(bb);
fout.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if("另存为".equals(comm)){
/**//*------------- 方法一 ---------------*/
// FileDialog d = new FileDialog(this, "另存为", FileDialog.SAVE);
// d.setVisible(true);
// try {
// filename = d.getDirectory() + d.getFile();
// FileOutputStream fout = new FileOutputStream(filename + ".txt");
// byte bb[] = jTextArea1.getText().getBytes();
// fout.write(bb);
// fout.close();
// } catch (IOException ioe) {
// System.err.println(e);
// }
/**//*------------- end ---------------*/
/**//*------------- 方法二 ---------------*/
JFileChooser jfc=new JFileChooser();
jfc.setCurrentDirectory(new File("c:"));//设置当前目录
//APPROVE_OPTION标识用于确认(yes、ok)按钮的工具提示文本的更改
if(jfc.showSaveDialog(this)==JFileChooser.APPROVE_OPTION){
File f=new File(jfc.getSelectedFile().getPath());
try {
FileOutputStream fos = new FileOutputStream(f+".txt");
byte bb[] = jTextArea1.getText().getBytes();
try {
fos.write(bb);
fos.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
/**//*------------- end ---------------*/
}
if("复制".equals(comm)){
copy=jTextArea1.getSelectedText();
// System.out.println(copy);
}
if("粘贴".equals(comm)){
pass=jTextArea1.getText();
jTextArea1.append(copy);
}
if("剪切".equals(comm)){
pass=jTextArea1.getText();
copy=jTextArea1.getSelectedText();
jTextArea1.replaceSelection("");
}
if("删除".equals(comm)){
pass=jTextArea1.getText();
jTextArea1.replaceSelection("");
}
if("撤销".equals(comm)){
jTextArea1.setText(pass);
}
if("全选".equals(comm)){
jTextArea1.selectAll();
}
if("替换".equals(comm)){
ReJFrame reJFrame=new ReJFrame();
reJFrame.setVisible(true);
}
if("查找".equals(comm)){
reString=jTextArea1.getText();
ReJFrame reJFrame=new ReJFrame();
reJFrame.setVisible(true);
// System.out.println(reString);
}
}
}