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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 索学超 中级黑马   /  2012-5-10 13:53  /  1767 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家帮忙看看下面的代码有什么问题,为啥我运行的时候老出错了?

import java.awt.*;
import java.awt.event.*;
class MyMenuTest
{
        private Frame f;
        private MenuBar bar;
        private Menu file;
        private MenuItem closeItem,saveItem,openItem;
        private FileDialog openDia,saveDia;
        private TextArea ta;

        MyMenuTest()
        {
                init();
        }
        private void init()
        {
                f = new Frame("my window");
                f.setBounds(300,100,650,600);
               
                bar = new MenuBar();

                file = new Menu("File");

                openItem = new MenuItem("Open");
                saveItem = new MenuItem("Save");
                closeItem = new MenuItem("Exit");
               
                file.add(openItem);
                file.add(saveItem);
                file.add(closeItem);
                bar.add(file);

                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()
        {
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });

                closeItem.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                System.exit(0);
                        }
                });

                openItem.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                openDia.setVisible(true);
                                String dirPath = openDia.getDirectory();
                                String fileName = openDia.getFile();
                                System.out.println(dirPath+"..."+fileName);

                                if(dirPath == null || fileName == null)
                                        return;
                                File 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");
                                        }
                                }
                                catch (IOException e)
                                {
                                        throw new RuntimeException("读取失败!");
                                }
                        }
                });
        }

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

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
  catch (IOException e)
这个 e和你的注册监视器的e重命
把e改成别的就行

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
有两处要改的 一个是导io包  还有一个就是把catch(IOException e)把e该一下名字,因为openItem建立监控时复写处理事件  public void actionPerformed(ActionEvent e)
用到了e重复了所以换一个其他的名就可以了,例如   catch(IOException ioe)

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
谢谢楼上几位啊 ,问题解决了,一个是这个地方局部变量名重复了,还有一个就是  呵呵  不好意思 少导入一个java.io.*;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马