package notebook;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
/*
*@author:赵继辉 Date:2008-11-5
*TEL:13502131018
*Mail:[email protected]
*
*/
import javax.swing.JMenuItem;
public class NoteBook {
public static void main(String[] args) {
JFrame noteBookJFrame = new JFrame("My Note Book");
noteBookJFrame.setLocation(250, 150);
noteBookJFrame.setSize(550, 500);
noteBookJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container noteBookContainer = noteBookJFrame.getContentPane();
noteBookContainer.setLayout(new BorderLayout());
//编辑区域
JTextArea noteBookTextArea = new JTextArea();
noteBookTextArea.setBackground(new Color(207, 233, 207));
noteBookTextArea.setFont(new Font("宋体", Font.PLAIN, 16));
noteBookContainer.add(noteBookTextArea);
JScrollPane textAreaScroll = new JScrollPane(noteBookTextArea);
noteBookContainer.add(textAreaScroll);
//工具栏
JToolBar noteBookJToolBar = new JToolBar();
JButton b_New = new JButton(new ImageIcon("New.png"));
JButton b_Open = new JButton(new ImageIcon("Open.png"));
JButton b_Save = new JButton(new ImageIcon("Save.png"));
b_New.setToolTipText("Greate a new file");
b_Save.setToolTipText("Save the file");
b_Open.setToolTipText("Open a file");
b_New.setActionCommand("New");
b_Open.setActionCommand("Open");
b_Save.setActionCommand("Save");
noteBookContainer.add(noteBookJToolBar, "North");
noteBookJToolBar.add(b_New);
noteBookJToolBar.add(b_Open);
noteBookJToolBar.add(b_Save);
JMenuBar noteBookJMenuBar = new JMenuBar();
//文件菜单
JMenu file = new JMenu("File");
noteBookJMenuBar.add(file);
JMenuItem file_new = new JMenuItem("New");
file_new.setMnemonic('N');
file.add(file_new);
JMenuItem file_open = new JMenuItem("Open");
file_open.setMnemonic('O');
file.add(file_open);
JMenuItem file_save = new JMenuItem("Save");
file_save.setMnemonic('S');
file.add(file_save);
file.setMnemonic('F');
//帮助菜单
JMenu help = new JMenu("Help");
noteBookJMenuBar.add(help);
JMenuItem help_about = new JMenuItem("About");
help_about.setMnemonic('A');
help.add(help_about);
help.setMnemonic('H');
MenuMonitor monitor = new MenuMonitor(noteBookTextArea);
file_new.addActionListener(monitor);
file_open.addActionListener(monitor);
file_save.addActionListener(monitor);
help_about.addActionListener(monitor);
b_New.addActionListener(monitor);
b_Open.addActionListener(monitor);
b_Save.addActionListener(monitor);
noteBookJFrame.setJMenuBar(noteBookJMenuBar);
noteBookJFrame.setVisible(true);
}
}
class MenuMonitor implements ActionListener {
private JTextArea jta;
public MenuMonitor(JTextArea jta) {
this.jta = jta;
}
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
if (s.equals("About")) {
JOptionPane.showConfirmDialog(null, "Version 1.0\nAuthor:赵继辉",
"About", JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE);
}
if (s.equals("New")) {
if (!jta.getText().equals("") ){
int result = JOptionPane.showConfirmDialog(null,
"不保存正在编辑的文件吗?", "警告", JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE);
if (result == JOptionPane.YES_OPTION) {
jta.setText("");
}
if (result == JOptionPane.NO_OPTION) {
JFileChooser jfc = new JFileChooser();
jfc.showSaveDialog(null);
File file = jfc.getSelectedFile();
try {
PrintWriter br = new PrintWriter(new FileWriter(file));
String content = jta.getText();
String[] line = content.split("\n");
for (int i = 0; i < line.length; i++) {
br.println(line[i]);
}
br.flush();
br.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
if (s.equals("Open")) {
jta.setText("");
JFileChooser jfc = new JFileChooser();
jfc.showOpenDialog(null);
File file = jfc.getSelectedFile();
if (file != null) {
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line = br.readLine();
while (line != null) {
jta.append(line + "\n");
line = br.readLine();
}
br.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if (s.equals("Save")) {
JFileChooser jfc = new JFileChooser();
jfc.showSaveDialog(null);
File file = jfc.getSelectedFile();
if(file!=null)
try {
PrintWriter br = new PrintWriter(new FileWriter(file));
String content = jta.getText();
String[] line = content.split("\n");
for (int i = 0; i < line.length; i++) {
br.println(line[i]);
}
br.flush();
br.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}