Java — ActionEvent 中的 getActionCommand() 方法


在ActionEvent中 有这样一个方法getActionCommand()  ;

               public String getActionCommand() ;

这个方法返回的是事件源组件的“命令” , 这个“命令” 实际上就是事件源组件上的“Label(标签)字符串” ,

比如:Button bt = new Button("按钮1") ;

那么如果我们为这个按钮添加了一个点击事件监听器的话(ActionListener),那么在public void actionPerformed(ActionEvent e)方法中,

如果调用getActionCommand()方法的话,返回的就是“按钮1” ;

那么这个方法到底有什么用处呢?

用途1:如果我们为多个可点击的组件注册了相同的事件监听器(ActionListener)的话,我们就可以

           使用    e.getActionCommand() 来区分到底是哪个组件被单击了(当然要保证这些组件的标签有互不相同的字符串),但是

           e.getSource() 同样可以做到 ;

用途2:通过此方法返回同一个组件能够产生的几个命令之一。

           例如,单个按钮可以在“显示详细信息”和“隐藏详细信息”之间切换。在所有情况下,源对象和事件都将是相同的 , 使用getSource()不能够去区分,

           但命令字符串将会标识出实际对应的动作。

          public class TestURL extends JFrame {  

                   public static void main(String [ ] args)  {   

                        TestURL my = new TestURL() ;   

                        Button bt = new Button("show") ;   

                        bt.addActionListener(new ActionListener( )   {

                             @Override    

                             public void actionPerformed(ActionEvent e) {     

                                    Button bt = (Button)e.getSource() ;    

                                   if(e.getActionCommand().equals("show"))     {      

                                             bt.setLabel("hide");     

                                    }     

                                     else     {      

                                                bt.setLabel("show");     

                                    }        

                               }       

                            });      

                           my.add(bt) ;  

                           my.setSize(200,200);  

                           my.setVisible(true);  

               }

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM