Mi piacerebbe implementare una descrizione in Swing che abbia un comportamento personalizzato: più a lungo l'utente si posiziona sul componente, maggiori dettagli dovrebbero essere visualizzati nel tooltip (ad esempio, alcune nuove righe vengono aggiunte dopo alcuni secondi del utente che passa il mouse sopra il componente). Ho solo bisogno di verificare se è davvero fattibile con Swing senza che le cose si complichino troppo. La mia idea in questo momento sarebbe probabilmente:Estendere ToolTipManager di Swing per modificare il comportamento al passaggio del mouse?
- Estendere ToolTipManager
- Override mouseEntered per avviare un timer (magari utilizzare javax.swing.Timer?). Chiama setToolTipText e createToolTip per aggiornare la descrizione comando e aggiungere nuove informazioni a intervalli regolari
- Override mouseExited per azzerare il timer
- probabilmente usare setDismissDelay per impostare il ritardo respingere a qualcosa di molto più a lungo (o Integer.MAX_VALUE)
Una cosa del genere è fattibile o non è un buon modo di lavorare con Swing (scusate, sono abbastanza nuovo)? C'è un modo migliore per farlo?
[modifica] Hmm, appena ricordato che ToolTipManager è un singleton con un costruttore che ha solo visibilità del pacchetto, quindi non può essere esteso.
[modifica 2] Sto provando alcune soluzioni al momento. Una cosa che ho dimenticato di aggiungere è che ho bisogno di sapere quale componente è stato sospeso sopra - che presumo significhi che dovrò lavorare con una sorta di listener con un metodo mouseEntered() (o essere in grado di accedervi informazione). E non è necessaria altra interattività con il popup/tooltip - ha solo bisogno di visualizzare le informazioni.
"* È possibile una cosa del genere? *" Sì. La tua strada sembra una buona opzione, ma senza un'implementazione concreta è difficile dirlo .. – user1803551
Vero! Se sembra un'opzione decente, ci provo, probabilmente il modo migliore per scoprirlo. –
Con altre informazioni potrei guidarti un po 'di più. Qualcosa del tipo "per ogni X secondi aggiuntivo di passaggio del mouse, aggiungi un'altra riga al testo del suggerimento" essere un buon esempio di ciò che vuoi ottenere? – user1803551