import java.io.File ;
import java.io.FileInputStream ;
import java.io.FileOutputStream ;
import java.io.PrintStream ;
import java.util.Scanner ;
import java.awt.BorderLayout ;
import java.awt.event.WindowAdapter ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionEvent ;
import java.awt.event.ActionListener ;
import javax.swing.JFrame  ;
import javax.swing.JTextArea ;
import javax.swing.JLabel ;
import javax.swing.JButton ;
import javax.swing.JPanel ;
import javax.swing.JFileChooser ;
import javax.swing.JScrollPane ;
class Note implements ActionListener{
	private JTextArea area = new JTextArea(8,10) ;	// 定义文本区
	private JFrame frame = new JFrame("Welcome To MLDN") ;
	private JButton open = new JButton("打开文件") ;
	private JButton save = new JButton("保存文件") ;
	private JLabel label = new JLabel("现在没有打开的文件") ;
	private JPanel butPan = new JPanel() ;
	public Note(){
		this.butPan.add(open) ;	// 在面板中加入按钮
		this.butPan.add(save) ;	// 在面板中加入按钮
		this.frame.setLayout(new BorderLayout(3,3)) ;
		this.frame.add(this.label,BorderLayout.NORTH) ;
		this.frame.add(this.butPan,BorderLayout.SOUTH) ;
		this.frame.add(new JScrollPane(this.area),BorderLayout.CENTER) ;
		this.frame.setSize(330,180) ;
		this.frame.setVisible(true) ;
		this.frame.addWindowListener(
			new WindowAdapter()	{
				public void windowClosing(WindowEvent e){
					System.exit(1) ;
				}
			}
		) ;
		this.open.addActionListener(this) ;
		this.save.addActionListener(this) ;
	}
	public void actionPerformed(ActionEvent e){
		File file = null ;	// 接收文件
		int result = 0 ;	// 接收操作状态
		JFileChooser fileChooser = new JFileChooser() ;	// 文件选择框
		if(e.getSource()==this.open){	// 表示执行的是打开操作
			this.area.setText("") ;	// 打开将文字区域的内容清空
			fileChooser.setApproveButtonText("确定") ;
			fileChooser.setDialogTitle("打开文件") ;
			result = fileChooser.showOpenDialog(this.frame) ;
			if(result==JFileChooser.APPROVE_OPTION){	// 选择的是确定按钮
				file = fileChooser.getSelectedFile() ;	// 得到选择的文件
				this.label.setText("打开的文件名称为:" + file.getName()) ;
			}else if(result==JFileChooser.CANCEL_OPTION){
				this.label.setText("没有选择任何文件") ;
			}else{
				this.label.setText("操作出现错误") ;
			}
			if(file!=null){
				try{
					Scanner scan = new Scanner(new FileInputStream(file)) ;
					scan.useDelimiter("\n") ;
					while(scan.hasNext()){
						this.area.append(scan.next()) ;
						this.area.append("\n") ;
					}
					scan.close() ;
				}catch(Exception e1){}
			}
		}
		if(e.getSource()==this.save){	// 判断是否是保存操作
			result = fileChooser.showSaveDialog(this.frame) ;	// 显示保存框
			if(result==JFileChooser.APPROVE_OPTION){	// 选择的是确定按钮
				file = fileChooser.getSelectedFile() ;	// 得到选择的文件
				this.label.setText("选择的存储文件名称为:" + file.getName()) ;
			}else if(result==JFileChooser.CANCEL_OPTION){
				this.label.setText("没有选择任何文件") ;
			}else{
				this.label.setText("操作出现错误") ;
			}
			if(file!=null){
				try{
					PrintStream out = new PrintStream(new FileOutputStream(file)) ;
					out.print(this.area.getText()) ;
					out.close() ;
				}catch(Exception e1){}
			}
		}
	}
}

public class JFileChooserDemo{
	public static void main(String args[]){
		new Note() ;
	}
}