文件的打开、保存

 
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyMenu
{
    public static void main(String[] args)
    {
        MenuFrame form = new MenuFrame();
    }
}
class MenuFrame extends Frame
{
    private MenuBar menuBar;
    private Menu fileMenu, editMenu;
    private MenuItem openItem, saveItem, exitItem, copyItem, cutItem, pasteItem;
    TextArea ta;
    Image img;

    MenuFrame()
    {
        super("菜单界面");
        setLayout(new FlowLayout());
        setFont(new Font("TimesRoman", Font.BOLD, 20));
        setSize(800, 600);
        Toolkit   tk = getToolkit();
        Dimension screenSize = tk.getScreenSize();
        int x = (int)(screenSize.getWidth() - getWidth()) / 2;
        int y = (int)(screenSize.getHeight() - getHeight()) / 2;
        setLocation(x, y);
        //img = tk.getImage("e:/java/f2.jpg");
        //try{img = ImageIO.read(new File(fname));}catch (IOException ee) {}

        menuBar = new MenuBar();
        fileMenu = new Menu("文件");
        openItem = new MenuItem("打开");
        saveItem = new MenuItem("保存");
        exitItem = new MenuItem("退出");
        editMenu = new Menu("编辑");
        copyItem  = new MenuItem("拷贝");
        cutItem     = new MenuItem("剪切");
        pasteItem = new MenuItem("粘贴");
        //事件监听器
        openItem.addActionListener(new ML());
        saveItem.addActionListener(new ML());
        exitItem.addActionListener(new ML());
        copyItem.addActionListener(new ML());
        cutItem.addActionListener(new ML());
        pasteItem.addActionListener(new ML());
        //加文件菜单
        menuBar.add(fileMenu);
        fileMenu.add(openItem);
        fileMenu.add(saveItem);
        fileMenu.addSeparator();
        fileMenu.add(exitItem);
        //加编辑菜单
        menuBar.add(editMenu);
        editMenu.add(copyItem);
        editMenu.add(cutItem);
        editMenu.add(pasteItem);
        //加菜单条
        setMenuBar(menuBar);
        ta = new TextArea("显示菜单命令", 16, 66, TextArea.SCROLLBARS_BOTH);
        ta.setLocation(10, 200);
        add(ta);


        setVisible(true);
        addWindowListener(new WL());
    }
/*
    public void paint(Graphics g)
    {
        if (img != null)        g.drawImage(img, 0, 0, this);
    }
*/
    Frame getFrameIns()
    {
        return this;
    }

    void fileRead(String fname)
    {
        try
        {

            String s;
            FileReader freader = new FileReader( fname );
            BufferedReader  in = new BufferedReader(freader);//每次读取一行
            while ((s = in.readLine()) != null)
                ta.append('\n' + s);
            in.close();
            freader.close();
        }
        catch (IOException e2)
        {
            System.out.println("不能打开文件!");
        }

    }
    
    public void fileWrite(String fname)
    {
    	try
    	{
    		 String s;
             FileWriter fwriter = new FileWriter( fname );
             BufferedWriter wr=new BufferedWriter(fwriter); 
             s = ta.getText();
             wr.write(s, 0, s.length());
             wr.close();
             fwriter.close();
    	}catch(IOException e3){}
    }


    final class ML implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            String s = e.getActionCommand();
            Frame frame = getFrameIns();

            if (s.compareTo("打开") == 0)
            {
                final FileDialog f = new FileDialog( frame, "Open", FileDialog.LOAD);
                f.setVisible(true);
                // 打开文件对话框适配器
                String fname = f.getDirectory() + f.getFile() ;
               // ta.setText(fname);
                if (fname != null)
                    fileRead(fname);
            }
            else  if (s.compareTo("保存") == 0)
            {
                final FileDialog f = new FileDialog( frame , "Save", FileDialog.SAVE);
                f.setVisible(true);
                String fname = f.getDirectory() + f.getFile() ;
                //ta.setText(fname);
                if(fname != null)
                	fileWrite(fname);
            }
            else  if (s.compareTo("退出") == 0)
            {
                System.exit(0);
            }
        }
    }
}

// To close the application:
class WL extends WindowAdapter
{
    public void windowClosing(WindowEvent e)
    {
        System.exit(0);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值