- package mypack;
- import java.awt.*;
- import java.awt.event.*;
- import java.io.*;
- public class MyMenuTest
- {
- private Frame f;
- private MenuBar bar;
- private TextArea ta;
- //定义一个文本区域
- private Menu fileMenu;
- private MenuItem openItem,saveItem,closeItem;
- //添加了打开、保存、关闭三个子条目
- private File file;
- private FileDialog openDia,saveDia;
- //定义一个文件对话框,包含打开对话框、保存对话框
-
- MyMenuTest()
- {
- init();
- }
- public void init()
- {
- f = new Frame("my widow");
- f.setBounds(300,100,500,600);
- //f.setLayout(new FlowLayout());
- //Frame默认边界管理布局
- bar = new MenuBar();
- ta = new TextArea();
- //给文本区域进行初始化
- 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);
- //给打开对话框初始化,所属于f,模式为FileDialog.LOAD(文件对话框加载)
- //如果不写,默认也是LOAD
- saveDia = new FileDialog(f,"我要保存",FileDialog.SAVE);
- //给保存对话框初始化,所属于f,模式为FileDialog.SAVE(文件对话框保存)
- f.add(ta);
- //把文本区域放进文本框架中
- myEvent();
- f.setVisible(true);
- }
- public 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);
- }
- try
- {
- BufferedWriter bufw = new
- BufferedWriter(new FileWriter(file));
- String text = ta.getText();
- bufw.write(text);
- bufw.flush();
- bufw.close();
- }
- catch (IOException e2)
- {
- throw new RuntimeException();
- }
- }
- });
-
- openItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- openDia.setVisible(true);
- //打开对话框要显示出来
- //可以打开一个对话框了,但是选取一个文件,点击打开的
- //的时候,却没有内容,所以要定义一个文本区域TextArea
- //需要把硬盘上的文件移到文区域里
- String dirPath = openDia.getDirectory();
- //返回的是String类型的路径就等于获取此文件对话框的目录
- String fileName = openDia.getFile();
- //获取选定的文件
- if(dirPath==null || fileName==null)
- return;
- //做判断,如果文件路径和文件名有一个为null
- //直接返回,不做任何事情
- //不等于null时,就new一个文件对象
- ta.setText("");//再次添加,要清空原有文件
- file = new File(dirPath,fileName);
- try
- {
- BufferedReader bufr = new BufferedReader(new FileReader(file));
- String line = null;
- while((line = bufr.readLine())!=null)
- {
- ta.append(line+"\r\n");
- }
- bufr.close();
- }
- catch (IOException e1)
- {
- throw new RuntimeException("读取失败");
- }
- //getDirectory()
- //获取此文件对话框的目录。
- //getFile()
- //获取此文件对话框的选定文件。
- }
- });
- closeItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- System.exit(0);
-
- }
- });
- f.addWindowListener(new WindowAdapter()
- {
- public void windowClosing(WindowEvent e1)
- {
- System.exit(0);
- }
- });
- }
- public static void main(String[] args)
- {
- new MyMenuTest();
- }
- }
复制代码
带包编译:javac -d c:\myclass day020.java
怎么编译不通过
day020.java:2521: 错误: 类MyMenuTest是公共的, 应在名为 MyMenuTest.java 的文件中
声明
public class MyMenuTest
^ |