Solo soy un aprendiz, no soy ningún experto, pero hace poco hice una práctica que quizás te pueda ayudar.
Para "escuchar" a la JTable yo lo que hice fue crear una clase que implementase un MouseListener.
Mira te pongo aquí el código entero de mi clase para explicar un poco, aunque realmente la mayor parte no te interesa.
class EscuchaMouse implements MouseListener
{
@Override
public void mouseClicked(MouseEvent e) {
String dniSeleccionado=null;
int fila = pnAlum.tbAlumnos.rowAtPoint(e.getPoint());
int columna = tbAlumnos.columnAtPoint(e.getPoint());
if (fila > -1)
dniSeleccionado = String.valueOf(pnAlum.tbAlumnos.getValueAt(fila,3));
if (dniSeleccionado.isEmpty())
{
pnNota.setNota(-1);
pnModulos.setModulos(null);
}
else
{
pnNota.setNota(extraerMediaNotas(dniSeleccionado));
pnModulos.setModulos(modulosSuspensos(dniSeleccionado));
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
}
@Override
public void mouseExited(MouseEvent arg0) {
}
@Override
public void mousePressed(MouseEvent arg0) {
}
@Override
public void mouseReleased(MouseEvent arg0) {
}
}
Al implementar el MouseListener, te obliga a sobreescribir los métodos propios de la clase MouseListener, pero puedes dejar vacíos los que no necesites.
En mi caso solo me interesaba el método correspondiente al evento mouseCLicked, es decir, cuadno se hace click en la tabla.
Cuando este evento ocurre, podemos recoger la fila y/o la columna donde se hizo el click:
int fila = pnAlum.tbAlumnos.rowAtPoint(e.getPoint());
int columna = tbAlumnos.columnAtPoint(e.getPoint());
Explico que pnAlum es un JPanel, que contiene la JTable tbAlumnos
tbAlumnos tiene los métodos rowAtPoint y columnAtPoint que al pasarle como argumento objeto
MouseEvent e invocando a su metodo getPoint(), podemos averiguiar en que fila y columna de la tabla se ha hecho click.
Si el click se ha hecho en un parte de la tabla donde no hay fila (un borde o lo que sea), el e.getPoint() devolvería -1
Si no, devuelve la fila seleccionada, numeradas de 0 a n...
No se si tú necesitas saber que fila se ha seleccionado.
En cualquier caso, si quieres escuchar al JTable necesitas usar el MouseListener
Así que puedes crear una clase como esta, y dentro del metodo mouseClicked escribe lo que quieras que ocurra cuando se haga click en la tabla.
Luego le añades este listener a tu tabla creando una instancia de tu clase y ya está:
pnAlum.tbAlumnos.addMouseListener(new EscuchaMouse());