/*
* ¹¦ÄÜ£ºÄ£ÄâÒ»¸ö¼òµ¥µÄ¼Çʱ¾£¬ÀûÓÃ»æ»æ»¡¢×Ö·ûÁ÷½øÐÐʵÏÖ
* 1¡¢²Ëµ¥£ºJMenuBar->JMenu->JMenuItem
* ²Ëµ¥Ìõ£¨×î¶¥²ã£©->²Ëµ¥£¨°üº¬Ôڲ˵¥ÌõÖУ©->²Ëµ¥Ï°üº¬Ôڲ˵¥ÖУ©
* 2¡¢¼òµ¥¼Çʱ¾¿ÉÒÔ£º´ò¿ªÎļþ£¬±£´æÎļþ£¬Áí´æÎļþÍ˳ö
*/
package com.bj.io;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.*;
import javax.swing.event.*;
public class Note_Pad extends JFrame implements ActionListener,WindowListener,KeyListener{
//Îļþ·¾¶
String dir=null;
//Îı¾×´Ì¬
boolean state=false;
//¶¨ÒåÎı¾Óò
JTextArea jta=null;
//¶¨Òå²Ëµ¥Ìõ
JMenuBar jmb=null;
//¶¨Òå²Ëµ¥
JMenu jm=null;
//¶¨Òå²Ëµ¥Ïî,´ò¿ª
JMenuItem jmi=null;
//¶¨Òå²Ëµ¥Ï±£´æ
JMenuItem jmi1=null;
//¶¨Òå²Ëµ¥ÏÁí´æÎª
JMenuItem jmi2=null;
//¶¨Òå²Ëµ¥ÏÍ˳ö
JMenuItem jmi3=null;
//JScollPane×é¼þ
JScrollPane jsp=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
//ÅжÏÊÇ·ñ´«ÈëÎļþ·¾¶£¨¼´ÊÇ·ñÓÐË«»÷´ò¿ªÎļþµÄÎļþ¹ØÁªÐÅÏ¢´«È룩
if(args.length>0){
Note_Pad np=new Note_Pad(args[0]);
}else{
Note_Pad np=new Note_Pad(null);
}
}
public Note_Pad(String dir){
this.dir=dir;
jta=new JTextArea();
jsp=new JScrollPane(jta);
jmb=new JMenuBar();
jm=new JMenu("Îļþ");
//jmi=new JMenuItem("´ò¿ª", new ImageIcon("images/notepad3.jpg"));//´øÍ¼±ê²Ëµ¥Ïî
jmi=new JMenuItem("´ò¿ª");
jmi1=new JMenuItem("±£´æ");
jmi2=new JMenuItem("Áí´æÎª");
jmi3=new JMenuItem("Í˳ö");
//×¢²á´ò¿ªÊ¼þ
jmi.addActionListener(this);
jmi.setActionCommand("open");
//×¢²á±£´æÊ¼þ
jmi1.addActionListener(this);
jmi1.setActionCommand("save");
//×¢²áÁí´æÎªÊ¼þ
jmi2.addActionListener(this);
jmi2.setActionCommand("saveAs");
//×¢²áÍ˳öʼþ
jmi3.addActionListener(this);
jmi3.setActionCommand("exit");
//×¢²á´°¿Úʼþ
this.addWindowListener(this);
//×¢²áÎı¾Óòʼþ£¬¼à²âÊÇ·ñÓÐÎı¾¸Ä±ä
jta.addKeyListener(this);;
//°Ñjm¼ÓÈëjmbÖÐ
jmb.add(jm);
//°Ñjmi¼ÓÈëjmÖÐ
jm.add(jmi);
jm.add(jmi1);
jm.add(jmi2);
jm.add(jmi3);
//°Ñjsp¼ÓÈë
this.add(jsp);
//ÉèÖÃjmb
this.setJMenuBar(jmb);
this.setSize(800,800);
this.setLocation(100,100);
this.setTitle("¼Çʱ¾");
this.setIconImage(new ImageIcon("images/notepad3.jpg").getImage());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
//´ò¿ªÎļþ
public void open(){
//¶Ô»°¿ò״̬
int option=-1;
//JFileChooserÎļþÑ¡ÔñÆ÷
JFileChooser jfc=new JFileChooser();
//ÉèÖô°¿Útitle
jfc.setDialogTitle("´ò¿ªÎļþ");
//´ò¿ª´°¿Ú£¬Í¬Ê±·µ»Ø¶Ô»°¿ò×îÖÕ״̬£¬È·ÈÏ»òÈ¡Ïû
option=jfc.showOpenDialog(null);
//ÏÔʾ´°¿Ú
jfc.setVisible(true);
//Åжϰ´¼üÊÇÈ·ÈÏ£¬ÔÙ×öϲ½²Ù×÷
if(option==jfc.APPROVE_OPTION){
//µÃµ½Îļþ¾ø¶Ô·¾¶
String filepath=jfc.getSelectedFile().getAbsolutePath();
//¸øÎļþ·¾¶¸³Öµ
this.dir=filepath;
System.out.println("dir:"+this.dir);
FileReader fr=null;
BufferedReader br=null;
try {
//ÏÈ´´½¨FileReader
fr=new FileReader(filepath);
//н¨BufferedReader
br=new BufferedReader(fr);
String s="";
String str="";
//Ñ»·¶ÁÈ¡Êý¾Ý,»º´æÁ÷½øÐжÁÈ¡,·µ»ØÃ¿ÐжÁÈ¡µÄÊý¾Ý£¬¸³Öµ¸øs
while(null!=(s=br.readLine())){
str+=s+"\n";
}
//ÉèÖÃJTextAreaÎı¾ÏÔʾ
this.jta.setText(str);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
try {
br.close();
fr.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
//±£´æ
public void save(){
if(this.dir==null){
saveAs();
}else{
//µÃµ½Îļþ¾ø¶Ô·¾¶
String filepath=this.dir;
//¸øÎļþ·¾¶¸³Öµ
this.dir=filepath;
FileWriter fw=null;
BufferedWriter bw=null;
try {
fw=new FileWriter(filepath);
bw=new BufferedWriter(fw);
String text=this.jta.getText();
//°ÑJTextAreaÖÐÎı¾£¬°´ÐдæÈëÊý×é
String s[]=text.split("\n");
//ͨ¹ýÑ»·°ÑÿһÐÐдÈëÎļþÖÐ
for(int i=0;i