2013-11-15 8 views
6

Desidero aggiungere un messaggio di suggerimento multilinea al componente swing. La soluzione di base è quella di utilizzare i tag HTML come questo:java, tooltip multilinea con larghezza massima fissa, utilizzando il tag html

label.setToolTipText("<html><p width=\"350px\">" + text + "</p></html>"); 

Funziona con testo lungo. Ma se il testo, diciamo, contiene solo una parola, avrà anche risolto una larghezza di 350 px con molto spazio vuoto.


Esiste una proprietà html speciale per max-width che funzionerà correttamente con il metodo setToolTipText()? Ho provato la soluzione successiva, ma non funziona:

"<p style=\"max-width: 350px\">" 

Devo calcolare la larghezza del testo in pixel e cambiare l'apertura <p> tag se la larghezza minore di 350 px?

+0

Hi ferrerverck, Avete trovato una soluzione? –

risposta

-2

vorrei suggerire quanto segue:

Dopo aver impostato una larghezza fissa, si potrebbe ottenere la dimensione preferita utilizzando:

Dimension d = someToolTip.getPreferredSize(); 
if (d.width < 350) { 

    // Insert code to make tooltip-size smaller, by setting it to d.width; 

} 
+0

Ciao Luke, la tua idea avrà un senso se alleghi almeno una soluzione parziale. Per esempio. la dimensione preferita nel mio caso restituisce lo stesso valore della dimensione fissa sebbene possa essere resa molto meno. O vuoi dire qualcos'altro o hai appena suggerito un'idea senza prima controllarla. –

+0

Imposta il suggerimento nel modo desiderato, ottieni la dimensione corrente tramite getPreferredSize() e quindi imposta quella dimensione nel caso in cui desideri che sia più piccola. Quindi modifica manualmente la larghezza invece di impostare un massimo. – Luke

Problemi correlati