Qual'è il modo migliore per 'aggiornare' il contentPane di un JFrame dopo che ha subito modifiche da un evento? Per modifiche intendo aggiunta e/o rimozioni di componenti, modifiche del layout manager, ecc.
Qual'è il modo migliore per 'aggiornare' il contentPane di un JFrame dopo che ha subito modifiche da un evento? Per modifiche intendo aggiunta e/o rimozioni di componenti, modifiche del layout manager, ecc.
Digicasper ;-)
non so se è il modo migliore.. io comunque uso il metodo .setViewportView() tramite quale riassegno il pannello da visualizzare..![]()
odio chi parla di politica..
anzi vorrei fondare un partito contro tutto ciò
repaint() è lì proprio per questo. Se poi le modifiche le fai nell'EventDispatcher, a seconda dei casi ti servono doLayout() e validate() e a volte aiuta usare EventQueue.invokeLater. Per casi estremi (elaborazioni lunghe che andrebbero fatte in un nuovo Thread o in un SwingWorker) puoi sempre usare paintImmediatly(getBounds()).
Bye.
ma setViewportView() non è un metodo di JScrollPane? E se io volessi utilizzare semplicemente un pannello (non per forza scrollabile) per il componente principale del contentPane?
Non c'è una maniera più 'elegante' di repaint()?
Digicasper ;-)
un metodo che si prende in carico tutto il lavoro, cui semplicemente notificare che l'oggetto va ridisegnato, mi sembra piuttosto elegante. Cosa, esattamente, sarebbe più elegante di repaint? Vuoi fare double-buffering?
Chiedo, scusa, mi sono espresso male.
repaint() per quel che ne so io (e per come lo uso io, non sono un professionista), per fare in modo che 'faccia effetto' bisogna chiamarlo direttamente dal JFrame.
E' possibile invece che l'urlo lo lanci un componente più interno, indipendentemente da cosa ha più su? Che sia un minimo riusabile, insomma.
Magari la risposta è stupida, non conosco tutte le funzioni di awt/swing.
Digicasper ;-)