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 Test { public static void main(String args[]) { new Note(); } }