首页 > 文章列表 > Java如何编写文本编辑器

Java如何编写文本编辑器

java
113 2023-04-27

Java如何实现文本编译器

简介

简单的文本编译器,可以通过弹出对话框打开文件,进行编写并保存文件。

代码

package Code.a;

import java.io.*;

import javax.swing.*;

import java.awt.event.*;

public class Editor implements ActionListener{

    JFrame f;

    JTextArea ta;

    JScrollPane sp;

    JMenuBar menubar;

    JMenu menu;

    JMenuItem openItem,saveItem,closeItem,exitItem;

    FileReader fr;

    FileWriter fw;

    JFileChooser fc;

    File file;

    //构造界面,本类作为监听类;

    public Editor(){

        f = new JFrame("简易文本编辑器");

        ta = new JTextArea();

        sp = new JScrollPane(ta);//滚轮

        f.add(sp);

        

        menubar = new JMenuBar();//菜单栏

        menu = new JMenu("File"); 

        openItem = new JMenuItem("Open");//四个选项

        saveItem = new JMenuItem("Save");

        closeItem = new JMenuItem("Close");

        exitItem = new JMenuItem("Exit");

        menu.add(openItem);

        menu.add(saveItem);

        menu.add(closeItem);

        menu.add(exitItem);

        menubar.add(menu);

        

        f.setJMenuBar(menubar);

        f.setSize(400,300);

        f.setVisible(true);

        //四个选项事件函数;

        openItem.addActionListener(this);

        saveItem.addActionListener(this);

        closeItem.addActionListener(this);

        exitItem.addActionListener(this);

    }

    public void actionPerformed(ActionEvent e)

    {

        //异常

        try {

            //点击打开选项时,弹出打开文件对话框;

            if(e.getActionCommand()=="Open") {

                fc = new JFileChooser();

                if(fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)

                {

                    file = fc.getSelectedFile();

                    fr = new FileReader(file);

                    int c;

                    while((c = fr.read()) != -1)

                    {

                        ta.append(String.valueOf((char) c));

                    }

                    fr.close();

                }

            }

            //点击保存选项时,弹出保存文件对话框;

            else if(e.getActionCommand()=="Save") {

                

                String str = ta.getText();

                fc = new JFileChooser();

                if(fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)

                {

                    file = fc.getSelectedFile();

                    fw = new FileWriter(file);

                    fw.write(str);

                    fw.close();

                }

            }

            //点击关闭选项时,清空文本框;

            else if(e.getActionCommand() == "Close") {

                ta.setText("");

            }

            //点击退出选项时,退出当前界面;

            else if(e.getActionCommand() == "Exit") {

                System.exit(0);

            }

        }

        //处理异常;

        catch(IOException exp) {

            exp.printStackTrace();

        }

    }

    public static void main(String[] args) {

        Editor e = new Editor();



    }



}