Ho una tabella in cui ogni riga rappresenta un'immagine. Nella colonna Percorso conservo il suo percorso assoluto. La stringa è piuttosto lunga, mi piacerebbe che quando si passa il mouse sopra la cella specifica, dovrebbe apparire un suggerimento vicino al mouse contenente le informazioni dalla cella.Come aggiungere un suggerimento a una cella in un jolly?
risposta
Suppongo che non abbiate scritto un'abitudine CellRenderer
per il percorso, ma semplicemente utilizzare lo DefaultTableCellRenderer
. È necessario creare una sottoclasse di DefaultTableCellRenderer
e impostare il suggerimento in getTableCellRendererComponent
. Quindi imposta il renderer per la colonna.
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
...
Si dice di memorizzare un percorso assoluto in una cella. Probabilmente stai usando un JLabel
per impostare la stringa di percorso assoluta. Supponiamo di avere un etichetta nel vostro cellulare, utilizzare i tag HTML per esprimere contenuti tooltip:
JLabel label = new JLabel("Bla bla");
label.setToolTipText("<html><p>information about cell</p></html>");
setToolTipText()
possono essere utilizzati per alcuni altri componenti Swing se si utilizza qualcosa di diverso JLabel.
deffinetly no ... –
* "deffinetly no" * Mi chiedo se @deporter capisce quel commento. Sono sicuro di no. :( –
per favore un po 'più preciso: _have un'etichetta nella tua cella_ potrebbe essere fuorviante (non ci dovrebbero essere componenti in cella, mai) Invece è un'etichetta fornita da un renderer come ... beh .. componente di rendering: -) – kleopatra
Basta utilizzare il codice qui sotto, mentre la creazione di oggetti 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;
}
};
In realtà, penso che sia più efficiente della soluzione accettata. –
Questo potrebbe non funzionare quando ordiniamo la tabella in base ad alcune colonne. –
Utilizzare 'getRowSorter(). ConvertRowIndexToModel (rowIndex)' e 'getRowSorter(). ConvertRowIndexToModel (rowIndex)' per ottenere la riga esatta dal modello. –
- 1. Come aggiungere un suggerimento a td in una tabella
- 2. Mostra un suggerimento sopra una cella in una JTable
- 3. Come aggiungere un menu a discesa a una cella JTable
- 4. Come aggiungere un suggerimento a un grafico svg?
- 5. Come posso aggiungere un ID univoco a una cella personalizzata?
- 6. come aggiungere un sottotesto a una cella di tabella?
- 7. Come posso aggiungere un suggerimento o suggerimento a un'etichetta in C# Winforms?
- 8. Come aggiungere una classe a una cella in SlickGrid
- 9. Come aggiungere spazio a AutoCompleteTextView suggerimento
- 10. Come aggiungere un suggerimento nello spinner in XML
- 11. Come aggiungere un'immagine icona come suggerimento a EditBox in Android
- 12. Come aggiungere un suggerimento personalizzato per l'indicatore di Google Maps?
- 13. Silverlight (3.0): Come aggiungere il riempimento cella a una griglia?
- 14. Come posso aggiungere un suggerimento al widget Spinner?
- 15. Come aggiungere una localizzazione a un settings.bundle?
- 16. Come posso aggiungere due righe in una singola cella pdf?
- 17. Come aggiungere un suggerimento di interruzione di riga in un nome di app Android
- 18. creare una cella personalizzato in un NSTableView
- 19. Funzione ricorsiva per abbinare una stringa a un modello jolly
- 20. Utilizzando il valore in una cella come un riferimento di cella in una formula?
- 21. Aggiunta di un suggerimento a una casella di input
- 22. Come aggiungere un pulsante cliccabile sulla cella della tabella?
- 23. Come aggiungere un figlio a un nodo in un TreePanel?
- 24. Come aggiungere un lavoro a una vista in hudson
- 25. Come aggiungere un seguito a un UIGestureRecognizer
- 26. Come visualizzare un suggerimento su un clic del mouse
- 27. Come aggiungere un'ombra esterna a un UIButton?
- 28. Come aggiungere più pulsanti a un NavigationBar?
- 29. come passare un jolly in C#
- 30. Come controllare se la cella contiene jolly asterisco (*) carattere
Non è possibile chiamare super.getTableCellRendererComponent. – codenamezero
@codenamezero Perché no? Sei consapevole che nel codice di esempio ho sottotitolato 'DefaultTableCellRenderer' che ha il metodo in una maniera non astratta ed è esso stesso un' JLabel'? –