| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1612 人关注过本帖
标题:一个疑惑:关于事件监听、actionPerformed()和fireActionPerformed()方法
只看楼主 加入收藏
wl19860126
Rank: 1
来 自:杭州
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-2-23
收藏
 问题点数:0 回复次数:0 
一个疑惑:关于事件监听、actionPerformed()和fireActionPerformed()方法
看java核心技术第一卷有一段时间了,这次在这本书上又遇到了个问题,麻烦大家给看看。顺便先说一下,我用的是第六版的。
我的问题是在第11章,“异常与调试”里遇到的,具体如下:
该书11.2.5节有一个示例代码,意在制造几个不同的错误,并捕获异常。具体代码如下:
public class ExceptTest{ ……}           //详细代码可以下载附件
class ExceptTestFrame extends JFrame{……}
class ExceptTestPanel extends Box
{
   public ExceptTestPanel()
   {  
      super(BoxLayout.Y_AXIS);
      group = new ButtonGroup();
……
      addRadioButton("Integer divide by zero", new
         ActionListener()
         {
            public void actionPerformed(ActionEvent event)
            {
               a[1] = 1 / (a.length - a.length);
            }
         });
            ……//这里是很多个addRadioButton()方法,就不都举出来了
   }
   private void addRadioButton(String s, ActionListener listener)
   {  
      JRadioButton button = new JRadioButton(s, false)
         {
            // the button calls this method to fire an
            // action event. We override it to trap exceptions
            protected void fireActionPerformed(ActionEvent event)    //这个方法就是让我产生疑惑的地方。
            {
               try
               {
                  textField.setText("No exception");
                  super.fireActionPerformed(event);
               }
               catch (Exception e)
               {
                  textField.setText(e.toString());
               }
            }
         };
      button.addActionListener(listener);
      add(button);
      group.add(button);
   }
   private ButtonGroup group;
   private JTextField textField;
   private double[] a = new double[10];
}


书上说:“点选按钮的fireActionPerformed方法中捕获actionPerformed方法的异常,并将相应的错误信息显示在文本框中。”

我这里要问的是:fireActionPerformed方法是怎么捕获fireActionPerformed方法中的异常的?

让actionPerformed()和fireActionPerformed()方法都在控制台输出一段文字。结果运行程序时,按下RadioButton时,所有的文字都输出,显然,事件促发时,两个方法都被调用了。

ExceptTest.rar (1.54 KB)
搜索更多相关主题的帖子: fireActionPerformed 
2008-10-23 21:52
快速回复:一个疑惑:关于事件监听、actionPerformed()和fireActionPerformed()方 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028594 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved