Tengo un JTable
en una GUI y deseo devolver un número basado en el valor de la celda en la que un usuario hace clic. Este es el código:¿Cómo puedo determinar qué celda de una JTable se seleccionó?
ListSelectionModel newmodel = mytable.getSelectionModel();
newmodel.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
int row = mytable.getSelectedRow();
int column = mytable.getSelectedColumn();
int cell = getNewNum();
datefield.setText(String.valueOf(cell));
}
});
Tengo un par de problemas con esto. En primer lugar, este método hace que mi mesa sea editable. Antes de usar este método, no podía editar la tabla, pero ahora puedo eliminar entradas. Busqué en la API, pero no sé por qué es así. En segundo lugar, si hago clic en una celda en la fila 3, por ejemplo, y luego hago clic en otra fila en la celda 3, no se registra ningún evento. ¿Cómo puedo hacer que un evento haga clic en una celda en la fila seleccionada actualmente?
Adición de un ListSelectionListener no hará que su tabla editable. La editabilidad de una celda está controlada por el método isCellEditable (...) del TableModel o la JTable misma. – camickr
posible duplicado de [¿Cómo puedo verificar en qué celda JTable se ha hecho clic/seleccionar?] (Http://stackoverflow.com/questions/4795586/how-can-i-check-which-jtable-cell-has-been- clicked-selected) – jlordo