Posted on 2009-06-28 22:06
London2012 阅读(157)
评论(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);
}
}

}
