Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    JPanel.setEnabled non funzionante

    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?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JPanel.setEnabled non funzionante

    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?
    La documentazione di setEnabled() in JComponent dice, tra altre cose:

    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    96
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.