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() ; } }