Cuando un usuario hace clic en una celda en un JTable
, ¿cómo averiguo la fila y la columna de la celda cliqueada? ¿Cómo mostraría esta información en un JLabel
?Determine qué celda JTable se hace clic
Respuesta
¿Has probado addMouseListener()
? Espero que estés a punto de usar Swing's JTable.
Puede utilizar los métodos siguientes en el JTable para recuperar fila y columna de la celda seleccionada:
int rowIndex = table.getSelectedRow();
int colIndex = table.getSelectedColumn();
y añadir un SelectionListener
a la mesa para coger el evento cuando se selecciona la tabla.
+1, excepto que ListSelectionListener se agrega a ListSelectionModel, no a JTable. – camickr
También podría agregar un ListSelectionListener al ColumnModel de JTable en caso de que la fila seleccionada permanezca igual pero la columna seleccionada cambie: table.getColumnModel(). GetSelectionModel(). AddListSelectionListener (...); – Uhlen
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
, hacer algo como esto:
public void mouseClicked(java.awt.event.MouseEvent event) {
int row = theTable.rowAtPoint(event.getPoint());
int col = theTable.columnAtPoint(event.getPoint());
// ...
Se está trabajando 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) {
}
}
});
He encontrado que cuando las columnas se ocultan/reordenado columnAtPoint
devuelve el índice de la 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()));
- 1. ¿Cómo puedo determinar qué celda de una JTable se seleccionó?
- 2. Haga clic en evento en jTable -Java
- 3. Cambiar el color de la celda JTable
- 4. ¿Por qué no se llama a cancelCellEditing() al presionar escape mientras se edita una celda JTable?
- 5. Cómo mantener JTable en la celda editada
- 6. Determine si se usa una celda (valor) en cualquier fórmula
- 7. JTable: Botones en el Panel personalizado en la Celda
- 8. ¿Cómo hacer que un JButton en una celda JTable pueda hacer clic?
- 9. Determinar la columna se hace clic en ListView
- 10. ¿Cómo puedo resaltar una fila completa de DataGrid cuando se hace clic en una sola celda?
- 11. WPF DataGrid: ¿cómo puedo detener el desplazamiento automático cuando se hace clic en una celda?
- 12. sin onclick cuando se hace clic niño
- 13. Haciendo un JButton se puede hacer clic en un JTable
- 14. Determine en qué mouse se hizo clic (múltiples dispositivos de mouse) en .NET
- 15. Colocando JToggleButton con JPanel dentro de una celda JTable
- 16. Cómo agregar un menú desplegable a una celda JTable
- 17. Haga clic en hipervínculo en jtable?
- 18. jQuery si hace clic?
- 19. ¿Cómo envolver las líneas en una celda jtable?
- 20. eliminando la rejilla jtable (borde de la celda) completamente
- 21. ¿Cómo resaltar ImageView cuando se enfoca o se hace clic?
- 22. bordes NSButton se vuelve gris cuando se hace clic
- 23. Determine qué evento de desplazamiento provocó que se dispare
- 24. Cómo agregar un JComboBox a una celda JTable?
- 25. Cómo insertar una imagen en la celda JTable
- 26. ¿Cómo marcar la entrada de la celda JTable como inválida?
- 27. problema de enfoque utilizando un JComboBox como editor de celda en una JTable
- 28. Cambiar el comportamiento de Ctrl + clic en una JTable
- 29. JTable Nimbus Look and Feel: cómo dejar en claro qué celda tiene foco
- 30. ¿Por qué SelectedIndexChanged se dispara para una DropDownList cuando se hace clic en un botón?
sí, estoy usando Swing's y no, no he intentado addMouseListener. lo intentaré ahora ... gracias. – Cristian
esto es un poco confuso, ¿podría dar algunos consejos o algunos enlaces? He estado buscando y sin resultado. Solo quiero agregar la fila y columna de jTable CELL seleccionada en jLabel ..... – Cristian
No creo que sea una buena forma de abordar el problema. El MouseEvent no será tan fácil de convertir a una columna y fila. Ver la respuesta de Develman. – jzd