Salve a tutti,
v'è mai capitato di usare il metodo JPanel.setEnabled(Boolean)?
In pratica vorrei che un pannello si abiliti/disabiliti in base ad una checkbox..ma a quanto pare quel metodo non ha alcun effetto...suggerimenti?
Salve a tutti,
v'è mai capitato di usare il metodo JPanel.setEnabled(Boolean)?
In pratica vorrei che un pannello si abiliti/disabiliti in base ad una checkbox..ma a quanto pare quel metodo non ha alcun effetto...suggerimenti?
La documentazione di setEnabled() in JComponent dice, tra altre cose:Originariamente inviato da giaomnitel1
v'è mai capitato di usare il metodo JPanel.setEnabled(Boolean)?
In pratica vorrei che un pannello si abiliti/disabiliti in base ad una checkbox..ma a quanto pare quel metodo non ha alcun effetto...suggerimenti?
Note: Disabling a component does not disable its children.
Un JPanel può essere usato per vari scopi ad esempio per disegnarci qualcosa dentro ma l'uso più comune è quello di fare da "contenitore" per altri componenti. In tal caso disabilitare il JPanel non ha effetto sui componenti contenuti e quindi .... non ti serve disabilitarlo.
Oltretutto per default, un JPanel non è "focusable", quindi non può avere il focus e non può ricevere input da tastiera. Quindi .... che ti serve disabilitarlo??
Spiega meglio cosa vuoi fare e perché vorresti disabilitare un JPanel. Se ti interessa disabilitare i componenti contenuti ... allora disabilita direttamente quelli. Se magari sono tanti o non sai a priori quanti sono, potresti anche estendere JPanel e ridefinire setEnabled() per disabilitare tutti i componenti contenuti sfruttando getComponents().
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Un bel metodo d'utilità ricorsivo del tipo:
disabilita(JComponent c)
c.setEnabled(false)
se c instanceof JContainer
per x:children of c
disabilita(x)
bye.