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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 姚伟涛 中级黑马   /  2012-4-13 09:42  /  1298 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

  5. class MaMenu {  

  6. public static void main(String args[]){  
  7. final TextArea ta=new TextArea();  
  8. final Frame mf=new Frame("菜单");  
  9. mf.setSize(600,400);  
  10. mf.setLocation(200,200);  
  11. mf.add(ta);  
  12. mf.addWindowListener( new WindowAdapter(){  
  13. public void windowClosing(WindowEvent e){  
  14. System.exit(0);  
  15. }  
  16. });  

  17. MenuBar br=new MenuBar();  
  18. Menu m1=new Menu("文件");  
  19. Menu m2=new Menu("编辑");  
  20. MenuItem mi1=new MenuItem("新建");  
  21. MenuItem mi2=new MenuItem("打开");  
  22. mi2.addActionListener(new ActionListener()  
  23. {public void actionPerformed(ActionEvent e){  
  24. FileDialog fd=new FileDialog(mf,"打开文件",FileDialog.LOAD);  
  25. String str=fd.getDirectory()+fd.getFile();  
  26. fd.show();  

  27. try{  
  28. if(str!=null)  
  29. { System.out.println(str);  
  30. FileInputStream fi=new FileInputStream(str);  
  31. byte by[]=new byte[10*1024];  

  32. int len=fi.read(by);  

  33. ta.append(new String(by,0,len));  
  34. }  
  35. }  
  36. catch(FileNotFoundException ex){  
  37. ex.getStackTrace();  
  38. }  
  39. catch(IOException ex){  
  40. ex.getStackTrace();  
  41. }  

  42. }  
  43. });  
  44. MenuItem mi3=new MenuItem("保存");  
  45. MenuItem mi4=new MenuItem("退出");  
  46. mi4.addActionListener( new ActionListener(){  
  47. public void actionPerformed(ActionEvent e){  
  48. System.exit(0);  
  49. }  
  50. });  
  51. MenuItem mi5=new MenuItem("删除");  
  52. MenuItem mi6=new MenuItem("粘贴");  

  53. m1.add(mi1);  
  54. m1.add(mi2);  
  55. m1.add(mi3);  
  56. m1.add(mi4);  
  57. m2.add(mi5);  
  58. m2.add(mi6);  

  59. br.add(m1);  
  60. br.add(m2);  

  61. mf.setMenuBar(br);  


  62. mf.show();  

  63. }  
  64. }  

复制代码
为什么选择打开选项不能读取文件,我在那里面加了一条打印语句,得到的文件路径和文件名却是空的?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

1 个回复

倒序浏览
你将
String str=fd.getDirectory()+fd.getFile();  
fd.show();
这两行代码换下位置就可以打印出文件路径了啊,它是顺序执行的,你应该在文件对话框显示出来了之后再获取文件路径,而不是先获取文件路径再显示文件对话框。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

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