我的问题就是有多个JTable添加了ListSelectionEvent,但在 valueChanged(ListSelectionEvent e){} 方法中怎么获取事件源呢?
我还弄了个简单的调试例子,请高手指教。。十分感谢
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;public class testTable extends JFrame implements ListSelectionListener {
JTable table1,table2;
JPanel p1,p2;
JScrollPane sp1,sp2;

public testTable(){
super();
p1=new JPanel();
p2=new JPanel();
table1=new JTable(5,5);
table2=new JTable(4,4);
table1.setPreferredScrollableViewportSize(new Dimension(360,150));
table2.setPreferredScrollableViewportSize(new Dimension(360,150));
sp1 = new JScrollPane();
sp2 = new JScrollPane();
sp1.getViewport().add(table1);
sp2.getViewport().add(table2);
p1.add(sp1);
p2.add(sp2);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(p1,BorderLayout.SOUTH);
getContentPane().add(p2,BorderLayout.NORTH);

setSize(400,300);
setResizable(false);
setVisible(true);

table1.getSelectionModel().addListSelectionListener(this);
table2.getSelectionModel().addListSelectionListener(this);
}
public void valueChanged(ListSelectionEvent e){

if (e.getValueIsAdjusting()) return;

//JTable tableTemp=(JTable)e.getSource();
System.out.println(e.toString());
if(e.getSource()==table1){
System.out.println("table1");
}else if(e.getSource()==table2){
System.out.println("table2");
}
}
public static void main(String args[]){
new testTable();
}
}