Componente vincolante < - > Contenitore (proprietà abilitata)
-
05-07-2019 - |
Domanda
Sto solo cercando di trovare il modo migliore per replicare una funzione piuttosto utile di Forms.Panel
di Windows in Java. Fondamentalmente, quando disabiliti un Forms.Panel
di Windows, anche tutti i controlli figlio sono disabilitati. Tuttavia, la loro proprietà abilitata viene preservata in modo tale che, quando il Pannello
viene nuovamente abilitato, qualsiasi controllo figlio disabilitato prima della disabilitazione del Pannello, rimane disabilitato.
Posso aggiungere un listener di proprietà per un JPanel
da attivare quando viene cambiata la sua proprietà abilitata e quindi scorrere tutti i componenti di JPanel
e impostarli su disabilitati , ma ciò non preserverà le proprietà abilitate del componente.
Qualche suggerimento?
Soluzione
Una soluzione più complessa è disponibile nel Pannello disattivato voce. Internamente utilizza una raccolta come suggerito da mlk per tenere traccia dei componenti che erano abilitati. Anche se non ti piace la soluzione proposta, puoi comunque utilizzare Swing Utils per ottenere facilmente tutti i componenti sul pannello.
Altri suggerimenti
Archivia i componenti disabilitati in una raccolta e controlla questa raccolta quando li riattivi.