问题:定义了一个JButton 数组JButton jb[]=new JButton[15];
然后对每个成员都注册了ActionListener;
在actionPerformed(ActionEvent e)方法中怎么得到e.getSource()的下标?也就是说怎么知道触发该事件的数组成员的下标?

 

正确回答:

可以通过getText()来确定,应该还有更好的办法
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class a extends JFrame{
     JButton[] jb;
     JLabel jl;
     public a() {
         Container contentPane=getContentPane();
         setLayout(new FlowLayout());
         jl=new JLabel();
         jb =new JButton[5];
         for(int i=0;i<jb.length; i++)
         {jb[i]=new JButton();
         jb[i].setText(String.valueOf(i));
         jb[i].addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e){

                 exe_actionPerformed(e);
             }
         });
         contentPane.add(jb[i]);
         }
         contentPane.add(jl);
         setSize(600,600);
         setVisible(true);
         // TODO Auto-generated constructor stub
     }

     /**
      * @param args
      */
     private void exe_actionPerformed(ActionEvent e)
     {
         JButton jbgets=(JButton)e.getSource();
        
         jl.setText(jbgets.getText());
     }
     public static void main(String[] args) {
         // TODO Auto-generated method stub
         new a();

     }

}
posted on 2010-03-19 14:38  KuSiuloong  阅读(340)  评论(0编辑  收藏  举报