JAVA记事本的图形用户界面应用程序

JAVA记事本的图形用户界面应用程序

整体分析:

代码实现:

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import java.awt.Font;

/**记事本的图形用户界面应用程序
 * @author 李祖林
 * 2017-6-22
 */
public class Note1 implements ActionListener{

    private JFrame frame;
    JMenuItem New, Open, Save, Close; /*
                                         * New为新建,
                                         * Open为打开 
                                         * Save为保存 
                                         * Close为关闭
                                         */
    JTextArea textArea;
    File fileName = new File("D:\\file.txt");    //默认打开文件路径
    
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Note1 window = new Note1();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public Note1() {
    
        frame = new JFrame();
        frame.setFont(new Font("Dialog", Font.BOLD, 18));
        frame.setBounds(100, 100, 629, 412);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        JMenuBar menuBar = new JMenuBar();
        frame.setJMenuBar(menuBar);
        
        JMenu menu = new JMenu("\u6587\u4EF6");
        menu.setFont(new Font("黑体", Font.BOLD, 18));
        menuBar.add(menu);
        
        New = new JMenuItem("\u65B0\u5EFA");
        New.setFont(new Font("黑体", Font.BOLD, 18));
        menu.add(New);New.addActionListener(this);
        
        Open = new JMenuItem("\u6253\u5F00");
        Open.setFont(new Font("黑体", Font.BOLD, 18));
        menu.add(Open);Open.addActionListener(this);
        
        Save = new JMenuItem("\u4FDD\u5B58");
        Save.setFont(new Font("黑体", Font.BOLD, 18));
        menu.add(Save);Save.addActionListener(this);
        
        JSeparator separator = new JSeparator();
        menu.add(separator);
        
        Close = new JMenuItem("\u5173\u95ED");
        Close.setFont(new Font("黑体", Font.BOLD, 18));
        menu.add(Close);Close.addActionListener(this);
        
        JMenu menu_1 = new JMenu("\u7F16\u8F91");
        menu_1.setFont(new Font("黑体", Font.BOLD, 18));
        menuBar.add(menu_1);
        
        JMenuItem menuItem_4 = new JMenuItem("\u590D\u5236");
        menu_1.add(menuItem_4);
        
        JMenuItem menuItem_5 = new JMenuItem("\u7C98\u8D34");
        menu_1.add(menuItem_5);
        
        JMenuItem menuItem_6 = new JMenuItem("\u526A\u5207");
        menu_1.add(menuItem_6);
        
        textArea = new JTextArea();
        frame.getContentPane().add(textArea, BorderLayout.CENTER);
    }

    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==Close){
            System.exit(0);
        }
        else if (e.getSource()==Save) {
            saveFile();
        }else if (e.getSource()==Open){
            readFile();
        }else{
            textArea.setText("");
        }
        
        
    }
    /*打开文件函数*/
    public void readFile(){
        try{
            BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName));    //缓存字符流
            StringBuffer buffer = new StringBuffer();                    
            String text;
            while((text = bufferedReader.readLine()) != null){
//                buffer.append(text+"\n");
                textArea.append(text+"\n");
            }
//            textArea.setText(buffer.toString());
            bufferedReader.close();
        }catch (IOException e) {
            System.err.println("读入文件发生错误!");
        }
    }
    /*保存文件函数*/
    public void saveFile(){
        try{
            BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(fileName));
            String string = textArea.getText();
            bufferedWriter.write(string);
            bufferedWriter.close();
        }catch (IOException e) {
            System.err.println("保存文件发生错误!");
        }
    }
    
}

实验结果:

posted @ 2017-06-22 18:21  霜沐林  阅读(708)  评论(0编辑  收藏  举报