validar - sumar datos de una columna jtable java
Determine qué celda JTable se hace clic (5)
Cuando un usuario hace clic en una celda en una JTable
, ¿cómo JTable
la fila y la columna de la celda cliqueada? ¿Cómo mostraría esta información en un JLabel
?
¡Está funcionando para mí!
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
int row = jTable1.rowAtPoint(evt.getPoint());
int col = jTable1.columnAtPoint(evt.getPoint());
if (row >= 0 && col >= 0) {
}
}
});
¿has addMouseListener()
? Espero que estés a punto de usar Swing''s JTable.
Descubrí que cuando las columnas están ocultas / se reordenan, columnAtPoint
devuelve el índice de columna visible, que no es lo que necesitaba. El código que funcionó para mí es
int row = theTable.convertRowIndexToModel(theTable.rowAtPoint(event.getPoint()));
int col = theTable.convertColumnIndexToModel(theTable.columnAtPoint(event.getPoint()));
La respuesta existente funciona, pero hay un método alternativo que puede funcionar mejor si no está habilitando la selección de celda. Dentro de su MouseListener
, haga algo como esto:
public void mouseClicked(java.awt.event.MouseEvent event) {
int row = theTable.rowAtPoint(event.getPoint());
int col = theTable.columnAtPoint(event.getPoint());
// ...
Puede usar los siguientes métodos en JTable para recuperar filas y columnas de la celda seleccionada:
int rowIndex = table.getSelectedRow();
int colIndex = table.getSelectedColumn();
Y agregue un SelectionListener
a la tabla para captar el evento cuando se selecciona la tabla.