A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.*;
import java.awt.*;
import java.awt.event.*;

class  MyMenuTest
{
private Frame f;
private MenuBar bar;
private Menu fileMenu;
private MenuItem openItem,saveItem,closeItem;
private TextArea ta;
private FileDialog openDia,saveDia;
private File file;
MyMenuTest()
{
  init();
}
public void init()
{ f = new Frame ("夏尔的记事本");
   f.setBounds(300,100,600,500);
   bar = new MenuBar();
   fileMenu = new Menu("文件");
   openItem =new MenuItem("打开");
   saveItem = new MenuItem("保存");
   closeItem = new MenuItem("退出");
   fileMenu.add(openItem);
   fileMenu.add(saveItem);
   fileMenu.add(closeItem);
   bar.add(fileMenu);
   f.setMenuBar(bar);
   openDia = new FileDialog(f,"我被夏尔打开了",FileDialog.LOAD);
      saveDia = new FileDialog(f,"我要保存",FileDialog.SAVE);
   ta = new TextArea();
   f.add(ta);
   myEvent();
f.setVisible(true);
}
    private void myEvent()
{

   saveItem.addActionListener(new ActionListener()
{   
  public void actionPerformed(ActionEvent e)
  { if(file==null)
   saveDia.setVisible(true);
    String dirPath = saveDia.getDirectory();
    String fileName = saveDia.getFile();
    if(dirPath==null||fileName==null)
     return;
       file = new File(dirPath,fileName);
  
  
   BufferedWriter bufw = null;

   try
    {
     bufw = new BufferedWriter(new FileWriter(file));
     String text = ta.getText();
     bufw.write(text);
     bufw.flush();
   
    }
   
   catch (IOException ex)
    {
      throw new RuntimeException("shibai");
    }
   
   
    finally
   {

    try
    {
     if(bufw!=null)
      bufw.close();
   
    }
    catch (IOException ex)
    {
      throw new RuntimeException("");
    }
   

    }
    }
   
  });








   openItem.addActionListener(new ActionListener()
{   
  public void actionPerformed(ActionEvent e)
  {
   openDia.setVisible(true);
    String dirPath = openDia.getDirectory();
    String fileName =openDia.getFile();
    if(dirPath==null||fileName==null)
     return;
       file = new File(dirPath,fileName);
    ta.setText("");
    BufferedReader bufr =null;
    try
    { bufr = new BufferedReader(new FileReader(file));
    String line = null;
    while((line=bufr.readLine())!=null)
    ta.append(line+"\r\n");
   
   
    }
    catch (IOException ex)
    {
     throw new RuntimeException("");
    }
    finally
    {

    try
    {if(bufr!=null)
      bufr.close();
   
    }
    catch (IOException ex)
    {
      throw new RuntimeException("");
    }
   

    }
   
   
   
  }
});
    closeItem.addActionListener(new ActionListener()
    { public void actionPerformed(ActionEvent e)
    {
     System.exit(0);  
       }
  
    });
    f.addWindowListener(new WindowAdapter()
  {
   public void WindowClosing(WindowEvent e)
    {
     System.exit(0);  //这里点窗口上面的X关闭不掉      退出保存 打开按钮都可以做相关动作
       }
  
  
  });
   
   }

public static void main(String[] args)
{
  new MyMenuTest();
}
}



4 个回复

倒序浏览
哥们,你标注释的一行上面的WindowClosing 的 w 应该是小写, 你用的什么编辑器呀,MyEclipse和eclipse都是有语言检查功能的,比较好用
回复 使用道具 举报
想要那片海 发表于 2015-6-1 19:20
哥们,你标注释的一行上面的WindowClosing 的 w 应该是小写, 你用的什么编辑器呀,MyEclipse和eclipse都是 ...

哦哦谢谢哦     我用的是EditPlus   -0-  其实人家跟你一样是姐们~
回复 使用道具 举报
夏尔 发表于 2015-6-1 19:23
哦哦谢谢哦     我用的是EditPlus   -0-  其实人家跟你一样是姐们~

好吧,我比较分不清动漫角色。。。
回复 使用道具 举报
想要那片海 发表于 2015-6-1 19:25
好吧,我比较分不清动漫角色。。。

嘿嘿  这里面都是男的  我也装一装 :victory:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马