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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝枫 中级黑马   /  2014-4-11 14:30  /  1100 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package mypack;

  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.io.*;
  5. public class MyMenuTest
  6. {
  7.         private Frame f;
  8.         private MenuBar bar;

  9.         private TextArea ta;
  10.         //定义一个文本区域
  11.         private Menu fileMenu;
  12.         private MenuItem openItem,saveItem,closeItem;
  13.         //添加了打开、保存、关闭三个子条目

  14.         private File file;

  15.         private FileDialog openDia,saveDia;
  16.         //定义一个文件对话框,包含打开对话框、保存对话框
  17.        
  18.         MyMenuTest()
  19.         {
  20.                 init();
  21.         }
  22.         public void init()
  23.         {
  24.                 f = new Frame("my widow");
  25.                 f.setBounds(300,100,500,600);
  26.                 //f.setLayout(new FlowLayout());
  27.         //Frame默认边界管理布局

  28.                 bar = new MenuBar();

  29.                 ta = new TextArea();
  30.                 //给文本区域进行初始化
  31.                 fileMenu= new Menu("文件");
  32.                 openItem = new MenuItem("打开");
  33.                 saveItem = new MenuItem("保存");
  34.                 closeItem = new MenuItem("退出");


  35.                 fileMenu.add(openItem);

  36.                 fileMenu.add(saveItem);

  37.        fileMenu.add(closeItem);

  38.                 bar.add(fileMenu);

  39.       f.setMenuBar(bar);

  40.           openDia = new FileDialog(f,"我要打开",FileDialog.LOAD);
  41.                 //给打开对话框初始化,所属于f,模式为FileDialog.LOAD(文件对话框加载)
  42.                 //如果不写,默认也是LOAD
  43.           saveDia = new FileDialog(f,"我要保存",FileDialog.SAVE);
  44.           //给保存对话框初始化,所属于f,模式为FileDialog.SAVE(文件对话框保存)

  45.                 f.add(ta);
  46.                 //把文本区域放进文本框架中


  47.                 myEvent();

  48.                 f.setVisible(true);
  49.      }
  50.          public void myEvent()
  51.          {
  52.                  saveItem.addActionListener(new ActionListener()
  53.                  {
  54.                          public void actionPerformed(ActionEvent e)
  55.                          {
  56.                           //保存对话框要做判断,什么时候要出来,什么时候不出来
  57.                           if(file==null)//文件不存在时,才要做下面的动作
  58.                           //并给文件初始化,文件不存在就不要做这些动作

  59.                                  {
  60.                                         saveDia.setVisible(true);
  61.                                         //先弹出来保存对话框
  62.                                         //获取文件的路径及文件名
  63.                                         String dirPath =saveDia.getDirectory();
  64.                                         String fileName = saveDia.getFile();
  65.                                         if(dirPath==null || fileName==null)
  66.                                      return;
  67.                    file = new File(dirPath,fileName);
  68.                                  }

  69.                                  try
  70.                                  {
  71.                                         BufferedWriter bufw = new
  72.                                                 BufferedWriter(new FileWriter(file));
  73.                                         String text = ta.getText();
  74.                                         bufw.write(text);
  75.                                         bufw.flush();
  76.                                         bufw.close();

  77.                                  }
  78.                                  catch (IOException e2)
  79.                                  {
  80.                                         throw new RuntimeException();
  81.                                  }


  82.                          }
  83.                  });
  84.                
  85.                 openItem.addActionListener(new ActionListener()
  86.                 {
  87.                         public void actionPerformed(ActionEvent e)
  88.                         {
  89.                                 openDia.setVisible(true);
  90.                                 //打开对话框要显示出来
  91.                                 //可以打开一个对话框了,但是选取一个文件,点击打开的
  92.                                 //的时候,却没有内容,所以要定义一个文本区域TextArea

  93.                                 //需要把硬盘上的文件移到文区域里

  94.                                 String dirPath = openDia.getDirectory();
  95.                                 //返回的是String类型的路径就等于获取此文件对话框的目录
  96.                                 String fileName = openDia.getFile();
  97.                                 //获取选定的文件

  98.                                 if(dirPath==null || fileName==null)
  99.                                         return;
  100.                                 //做判断,如果文件路径和文件名有一个为null
  101.                                 //直接返回,不做任何事情
  102.                                 //不等于null时,就new一个文件对象

  103.                                 ta.setText("");//再次添加,要清空原有文件
  104.                                  file = new File(dirPath,fileName);
  105.                                 try
  106.                                 {
  107.                                         BufferedReader bufr = new BufferedReader(new FileReader(file));
  108.                                         String line = null;
  109.                                         while((line = bufr.readLine())!=null)
  110.                                         {
  111.                                                 ta.append(line+"\r\n");
  112.                                         }
  113.                                         bufr.close();
  114.                                 }
  115.                                 catch (IOException e1)
  116.                                 {
  117.                                         throw new RuntimeException("读取失败");
  118.                                 }


  119.                                 //getDirectory()
  120.                 //获取此文件对话框的目录。
  121.                 //getFile()
  122.                 //获取此文件对话框的选定文件。

  123.                         }
  124.                 });
  125.                 closeItem.addActionListener(new ActionListener()
  126.                 {
  127.                         public void actionPerformed(ActionEvent e)
  128.                         {
  129.                                 System.exit(0);
  130.                                
  131.                         }
  132.                 });
  133.                 f.addWindowListener(new WindowAdapter()
  134.                 {
  135.                         public void windowClosing(WindowEvent e1)
  136.                         {
  137.                                 System.exit(0);
  138.                         }
  139.                 });
  140.          }
  141.     public static void main(String[] args)
  142.         {
  143.                 new MyMenuTest();
  144.         }
  145. }



复制代码


带包编译:javac -d c:\myclass  day020.java

怎么编译不通过
day020.java:2521: 错误: 类MyMenuTest是公共的, 应在名为 MyMenuTest.java 的文件中
声明
public class MyMenuTest
       ^

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

2 个回复

倒序浏览
public class MyMenuTest必须保存在MyMenuTest.java文件中,不然就会报错。
不然就把public去掉,改成class MyMenuTest
回复 使用道具 举报
是要设置环境变量吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马