1.使用鼠标监听事件
代码如下
JFrame jFrame=new JFrame();
jFrame.setSize(400,100);
String[] colnames={"","","","",""};
Object[][] date={
{"1","","","",""},
{"2","","","",""},
{"3","","","",""},
{"4","","","",""}
};
JTable jTable=new JTable(date,colnames);
jTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int row = jTable.rowAtPoint(e.getPoint());
// 在这里可以使用 row 变量获取当前行号
System.out.println(row); //添加事件或者输出
//,默认是从0开始
}
});
jFrame.add(jTable);
jFrame.setDefaultCloseOperation(3);
jFrame.setVisible(true);
运行结果如下
2.使用选择模型
在获取到当前行号后,将该行的数据显示在控制台,如下:
JFrame jFrame=new JFrame();
jFrame.setSize(400,100);
String[] colnames={"","","","",""};
Object[][] date={
{"1","","","",""},
{"2","","","",""},
{"3","","","",""},
{"4","","","",""}
};
JTable jTable=new JTable(date,colnames);
jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
int selectedRow = jTable.getSelectedRow();
for (int col = 0; col < jTable.getColumnCount(); col++) {
Object value = jTable.getValueAt(selectedRow, col);
System.out.print(value + " "); //添加事件或者输出
}
System.out.println();
}
}
});
jFrame.add(jTable);
jFrame.setDefaultCloseOperation(3);
jFrame.setVisible(true);
运行结果