Java纯文本文件显示工具制作

创建一个简单的纯文本文件显示工具,它能在一个具有滚动条的窗口里面查看文本文件。该程序应当扩展Frame类,并含有一个文件菜单系统。通过菜单可以打开文件和退出程序,当选择“打开”命令时应当弹出一个标准的“打开文件”对话框,以便用户选择要打开的文本文件,选择“退出”命令将关闭程序。

import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class TextViewer extends Frame implements ActionListener{
    private Menu fileMenu = new Menu("File");
    private MenuItem fileOpen  = new MenuItem("Open");
    private MenuItem fileExit   = new MenuItem("Exit");
    private TextArea text       = new TextArea();
    public TextViewer(){
        super("Text Viewer");
        fileMenu.add(fileOpen); fileOpen.addActionListener(this);
        fileMenu.addSeparator();
        fileMenu.add(fileExit); fileExit.addActionListener(this);
        MenuBar menu = new MenuBar();
        menu.add(fileMenu);
        setMenuBar(menu);
        setLayout(new BorderLayout());
        add("Center", text);
        text.setEditable(true);
        setSize(400,400);
        setVisible(true);
    }
    public void readFile(String file) {
        text.setText("");
        try{
            BufferedReader in = new BufferedReader(new FileReader(file));
            String line;
            while ((line = in.readLine()) != null)
                text.append(line + "\n");
            in.close();
            text.setCaretPosition(0);
        } catch(IOException ioe) {
            System.err.println(ioe); 
        }
    }
    public void actionPerformed(ActionEvent ae) {
        if (ae.getSource() == fileExit)
            System.exit(0);
        else if (ae.getSource() == fileOpen) {
            FileDialog fd =new FileDialog(this,
                "Open File",FileDialog.LOAD);
            fd.setVisible(true);
            if (fd.getFile() != null) {
                File file = new File(fd.getDirectory() + fd.getFile());
                if (file.exists())
                    readFile(file.toString());
                else
                    text.setText("File name: " + file + " invalid.");
            }
            fd.dispose();
        }
    }
    public static void main(String args[]){
        TextViewer editor = new TextViewer(); 
    }
}
原创文章 66 获赞 39 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44739495/article/details/103661921
今日推荐