Tengo una tabla donde cada fila representa una imagen. En la columna Ruta I, almaceno su ruta absoluta. Como la cadena es algo larga, me gustaría que cuando coloque el mouse sobre la celda específica, aparezca una información sobre herramientas al lado del mouse que contenga la información de la celda.¿Cómo agregar una información sobre herramientas a una celda en un jtable?
Respuesta
Supongo que no escribió un CellRenderer
personalizado para la ruta, pero simplemente use el DefaultTableCellRenderer
. Debe subclasificar el DefaultTableCellRenderer
y configurar la información sobre herramientas en el getTableCellRendererComponent
. Luego configura el renderizador para la columna.
class PathCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(
JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
JLabel c = (JLabel)super.getTableCellRendererComponent(// params from above);
// This...
String pathValue = <getYourPathValue>; // Could be value.toString()
c.setToolTipText(pathValue);
// ...OR this probably works in your case:
c.setToolTipText(c.getText());
return c;
}
}
...
pathColumn.setCellRenderer(new PathCellRenderer()); // If your path is of specific class (e.g. java.io.File) you could set the renderer for that type
...
Dice que almacena una ruta de acceso absoluta en una celda. Probablemente esté utilizando un JLabel
para establecer la cadena de ruta absoluta . Suponga que tiene una etiqueta en su celular, usar etiquetas HTML para expresar el contenido de información de herramienta:
JLabel label = new JLabel("Bla bla");
label.setToolTipText("<html><p>information about cell</p></html>");
setToolTipText()
se puede utilizar para algunos otros componentes Swing si está utilizando algo que no sea JLabel.
valiera nop ... –
* "valiera nop" * Me pregunto si entiende que @deporter comentario. Seguro que no. :( –
por favor, sea un poco más preciso: _tiene una etiqueta en su celda_ podría ser engañoso (no debería haber componentes en la celda, nunca) En su lugar, es una etiqueta proporcionada por un procesador como ... bien .. componente de representación: -) – kleopatra
sólo tiene que utilizar a continuación del código durante la creación del objeto JTable.
JTable auditTable = new JTable(){
//Implement table cell tool tips.
public String getToolTipText(MouseEvent e) {
String tip = null;
java.awt.Point p = e.getPoint();
int rowIndex = rowAtPoint(p);
int colIndex = columnAtPoint(p);
try {
tip = getValueAt(rowIndex, colIndex).toString();
} catch (RuntimeException e1) {
//catch null pointer exception if mouse is over an empty line
}
return tip;
}
};
En realidad, creo que es más eficiente que la solución aceptada. –
Esto puede no funcionar cuando ordenamos la tabla en función de alguna columna. –
Utilice 'getRowSorter(). ConvertRowIndexToModel (rowIndex)' y 'getRowSorter(). ConvertRowIndexToModel (rowIndex)' para obtener la fila exacta del modelo. –
- 1. Mostrar una información sobre herramientas sobre una celda en una JTable
- 2. Cómo agregar información sobre herramientas a las filas de JTable
- 3. ¿Cómo agregar una información sobre herramientas a un gráfico svg?
- 4. Cómo agregar información sobre herramientas a td en una tabla
- 5. Cómo agregar información sobre herramientas a jqgrid
- 6. Cómo agregar un menú desplegable a una celda JTable
- 7. Cómo agregar un JComboBox a una celda JTable?
- 8. Cómo agregar información sobre herramientas para un elemento o celda de una tabla vaadin
- 9. Agregar información sobre herramientas a JTextPane
- 10. C#: ¿Cómo agrego una información sobre herramientas a un control?
- 11. ¿Cómo puedo agregar una sugerencia o información sobre herramientas a una etiqueta en C# Winforms?
- 12. JQuery JSTree: agregue una información sobre herramientas
- 13. ¿Cómo se muestra la información sobre herramientas para cada celda?
- 14. Información sobre herramientas en una imagen
- 15. cómo mostrar una información sobre herramientas en un control deshabilitado?
- 16. Oracle APEX: información sobre herramientas en la celda del informe
- 17. ¿Cómo agregar una información sobre herramientas a un "td" con jquery?
- 18. Agregar filas a una JTable
- 19. Mostrar una información sobre herramientas en un ToolStripItem no enfocado
- 20. agregar información sobre herramientas a los controles creados mediante programación
- 21. MFC: ¿Cómo agregar información sobre herramientas en elementos Cmenu?
- 22. Cómo crear una útil información sobre herramientas en Android
- 23. Obligar a que aparezca una información sobre herramientas Java
- 24. Información sobre herramientas para QPushButton
- 25. Información sobre herramientas sobre un polígono en Google Maps
- 26. Definir nueva información sobre herramientas en Emacs
- 27. Cómo mostrar una información sobre herramientas de .NET Balloon?
- 28. Información sobre herramientas en paneles
- 29. ¿Cómo configurar la información sobre herramientas en el mouse jqGrid?
- 30. Cómo insertar una imagen en la celda JTable
No puede llamar a super.getTableCellRendererComponent. – codenamezero
@codenamezero ¿Por qué no? ¿Sabía que en el código de ejemplo he subclasificado 'DefaultTableCellRenderer' que tiene el método de una manera no abstracta y es él mismo un' JLabel'? –