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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ifuzhen 中级黑马   /  2014-5-3 19:42  /  1169 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.io.*;

  4. class MyMenuDemo
  5. {

  6.         private Frame f;
  7.         private Menu fileMenu,subMenu;
  8.         private MenuBar mbar;
  9.         private Button btn;
  10.         private MenuItem openItem,saveItem,closeItem;
  11.        
  12.         private TextArea ta;
  13.         private FileDialog dia,saveDia;

  14.         private File file;
  15.        
  16.         MyMenuDemo()
  17.         {
  18.                 init();
  19.         }

  20.         public void init()
  21.         {
  22.                 f =new Frame("MyMenuDemo");
  23.                 f.setBounds(300,200,500,400);
  24. //                f.setLayout(new FlowLayout());流式布局,默认的话是边界布局
  25.                
  26.                 mbar =new MenuBar();
  27.                 fileMenu  =new Menu("文件");

  28.                 //subMenu =new Menu("子菜单");//声明子类new父类是不可以的:subMenu=new MenuItem();
  29.                 saveItem =new MenuItem("保存");//声明父类new子类是可以的:subItem =new Menu();
  30.                 //subMenu.add(subItem);
  31.                
  32.                 openItem =new MenuItem("打开");
  33.                 closeItem =new MenuItem("关闭");

  34.                 fileMenu.add(openItem);
  35.                 fileMenu.add(saveItem);
  36.                 fileMenu.add(closeItem);

  37.                 mbar.add(fileMenu);

  38.                 f.setMenuBar(mbar);

  39.                 ta =new TextArea();
  40.                 f.add(ta);

  41.                
  42.                 dia =new FileDialog(f,"打开文件-test",FileDialog.LOAD);
  43.                 saveDia =new FileDialog(f,"保存文件-test",FileDialog.SAVE);

  44.                 myEvent();
  45.                 f.setVisible(true);

  46.         }

  47.         public void myEvent()
  48.         {

  49.                 f.addWindowListener(new WindowAdapter()
  50.                 {
  51.                         public void windowClosing(WindowEvent e)
  52.                         {
  53.                                 System.exit(0);
  54.                         }
  55.                 });
  56.                
  57.                 closeItem.addActionListener(new ActionListener()
  58.                 {
  59.                         public void actionPerformed(ActionEvent e)
  60.                         {
  61.                                 System.exit(0);
  62.                         }
  63.                 });

  64.                 openItem.addActionListener(new ActionListener()
  65.                 {
  66.                         public void actionPerformed(ActionEvent e)
  67.                         {
  68.                                 dia.setVisible(true);
  69.                                 String fileDir =dia.getDirectory();
  70.                                 String fileName =dia.getFile();
  71.                                 //System.out.println(fileDir+""+fileName);
  72.                                 if (fileDir==null || fileName==null)
  73.                                 {
  74.                                         return ;
  75.                                 }
  76.                                
  77.        

  78.                                 ta.setText("");
  79.                                 file =new File(fileDir,fileName);

  80.                                 sop((file==null)==(fileDir==null || fileName==null));

  81.                                 BufferedReader bufr =null;
  82.                                 try
  83.                                 {
  84.                                         bufr =new BufferedReader(new FileReader(file));
  85.                                         String line=null;
  86.                                         while((line=bufr.readLine())!=null)
  87.                                         {
  88.                                                 ta.append(line+"\r\n");
  89.                                         }
  90.                                 }
  91.                                 catch (IOException ex)
  92.                                 {
  93.                                         throw new RuntimeException("读取失败");
  94.                                 }
  95.                                 finally
  96.                                 {
  97.                                         try
  98.                                         {
  99.                                                 if (bufr!=null)
  100.                                                 {
  101.                                                         bufr.close();
  102.                                                 }
  103.                                         }
  104.                                         catch (IOException ee)
  105.                                         {
  106.                                                 throw new RuntimeException("关闭文件失败");
  107.                                         }               
  108.                                 }
  109.                         }
  110.                 });

  111.                 saveItem.addActionListener(new ActionListener()
  112.                 {
  113.                         public void actionPerformed(ActionEvent e)
  114.                         {
  115.                                 if (file==null)
  116.                                 {
  117.                                         saveDia.setVisible(true);
  118.                                
  119.                                
  120.                                         String filePath=saveDia.getDirectory();
  121.                                         String fileName=saveDia.getFile();
  122.                                         if (filePath ==null || fileName==null)
  123.                                                 return ;

  124.                                         file =new File(filePath,fileName);
  125.                                 } //一个 括号引发的学案
  126.                                         try
  127.                                         {
  128.                                                 BufferedWriter bufw =new BufferedWriter(new FileWriter(file));
  129.                                                 String text=ta.getText();
  130.                                                 //sop(text+"111");
  131.                                                 bufw.write(text);
  132.                                                 bufw.close();
  133.                                         }
  134.                                         catch (IOException ee)
  135.                                         {
  136.                                                 throw new RuntimeException("保存失败");
  137.                                         }

  138.                                 }
  139.                         });

  140.         }

  141.         public static void main(String[] args)
  142.         {
  143.                 new MyMenuDemo();
  144.                 File f =new File("D:\\","copy.txt");
  145.                 String filePath=f.getParent();
  146.                 String fileName=f.getName();
  147.                 sop(f);
  148.                 sop((f==null)==(filePath==null || fileName==null));
  149.         }
  150.         public static void sop(Object obj)
  151.         {
  152.                 System.out.println(obj);
  153.         }
  154. }
复制代码

1 个回复

倒序浏览
。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马