问题:定义了一个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(); } } |