黑马程序员技术交流社区

标题: 关于GUI练习上出现的小错误问题 [打印本页]

作者: 索学超    时间: 2012-5-10 13:53
标题: 关于GUI练习上出现的小错误问题
大家帮忙看看下面的代码有什么问题,为啥我运行的时候老出错了?

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();
        }
}


作者: 黑马张立国    时间: 2012-5-10 14:03
  catch (IOException e)
这个 e和你的注册监视器的e重命
把e改成别的就行
作者: 魏征    时间: 2012-5-10 14:08
有两处要改的 一个是导io包  还有一个就是把catch(IOException e)把e该一下名字,因为openItem建立监控时复写处理事件  public void actionPerformed(ActionEvent e)
用到了e重复了所以换一个其他的名就可以了,例如   catch(IOException ioe)
作者: 索学超    时间: 2012-5-11 08:43
谢谢楼上几位啊 ,问题解决了,一个是这个地方局部变量名重复了,还有一个就是  呵呵  不好意思 少导入一个java.io.*;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2