看了CORE JAVA中的多点传送的例子,不大明白
谁可以给个简单的,不用有什么作用,用最简单的代码写出多点传送就可以了谢谢先

解决方案 »

  1.   

    书上的多点传送意思是:对一个相同事件存在多个监听器感兴趣。
    比方说下面这个例子。class MyPanel extends JPanel{
        
        JButton bn= new JButton("button");
        add(bn);    bn.addActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent e){      
                    add(new JButton("new button")); 
            }
        });    bn.addActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent e){      
                    add(new JTextField("new button")); 
            }
        });}   按钮bn有两个命令监听器,当我们鼠标单击按钮,两个监听器都会监听到这个命令事件。当然只会有命令监听器会接收这个事件。对于这个例子来说,面板上会添加一个新按钮和新文本域。
       
       书上的多点传送例子复杂点,他使用动态的添加和删除监听器。每当我们单击newButton时候,
    监听器会生成一个新框架,注意下这个框架的构造器,这个构造器有个参数接收了closeAllButton(使用了final,内部类要使用),在构造器中closeAllButton动态添加了一个命令监听器。简单的说,每生成一个新框架,closeAllButton都会添加一个命令监听器。这个命令监听器干什么事情呢?1。删除相应的框架  2。从closeAllButton中删除自身监听器(既然相应的框架不存在了,还留着干什么),你可以试下,将这个语句删除,多点几下就会引发错误。
       书上前一章讲的"多个事件向同一个监听器报告”则恰好相反,比方说我们很多软件都有菜单栏和快捷工具栏,单击菜单的某项和单击工具栏某个按钮行为很可能是相同的,这时候就可以把这些事件向同一个监听器报告。