Swing: modo più computazionalmente efficiente per lampeggiare le celle particolari in una tabella
-
09-12-2019 - |
Domanda
Ho bisogno di un modo per attirare l'attenzione su particolari cellule in un grande jtable (20x16!), e voglio sapere cosa ci vorrebbe per il testo per lampeggiare, ad es.900MSEC ON e 100MSEC disattivato.
(Ho familiarità con il concetto di un TableCellRenderer
)
C'è un modo per farlo solo per le cellule in questione, senza causare ridisegnare tutte le cellule?
Soluzione
Il ciclo di servizio richiesto (900 ms su, 100 ms off) e il conteggio (20 x 16) è ben all'interno della capacità del rendering JTable
, che utilizza pattern di pesi volano per efficienza.Sulla rara occasione quando il profilante garantisce il controllo, vedi l'articolo Applicazioni dell'albero di Natale .Vedi anche questo Confronto con l'approccio prepareRenderer()
.
Addendum: Considera anche un GridLayout
di JLabel
, con ciascun pulsante che ha la sua istanza di javax.swing.Timer
per evitare lampeggiante sincrono.I timer condividono un filo comune.