Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Resettare un jPanel

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    Dove sbaglio?
    Io avrei fatto un

    public void reset(Container container)

    In AWT/Swing un java.awt.Container è-un java.awt.Component e contiene N Component. Dato un Container, puoi ottenere l'array dei Component contenuti. Se uno dei Component è realmente un Container, puoi invocare ricorsivamente il tuo reset. È appunto in questo modo che si può scansionare la GUI in "profondità".

    Riguardo JScrollPane, è un po' più particolare. Dentro JScrollPane ci sono diversi componenti (tra cui le due possibili scrollbar). Volendo ignorare la struttura standard e considerando solo il componente messo come "view", basta usare:

    scrollpane.getViewport().getView()

    che ti fornisce il Component. Idem come sopra, potrebbe essere un Container .... e idem stesso discorso di prima.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    31
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Io avrei fatto un

    public void reset(Container container)

    In AWT/Swing un java.awt.Container è-un java.awt.Component e contiene N Component. Dato un Container, puoi ottenere l'array dei Component contenuti. Se uno dei Component è realmente un Container, puoi invocare ricorsivamente il tuo reset. È appunto in questo modo che si può scansionare la GUI in "profondità".

    Riguardo JScrollPane, è un po' più particolare. Dentro JScrollPane ci sono diversi componenti (tra cui le due possibili scrollbar). Volendo ignorare la struttura standard e considerando solo il componente messo come "view", basta usare:

    scrollpane.getViewport().getView()

    che ti fornisce il Component. Idem come sopra, potrebbe essere un Container .... e idem stesso discorso di prima.

    Perfetto, ho realizzato un semplice metodo ricorsivo che riceve come parametro il container e se trova jTextFIeld o jTextArea esegue una setText(""), mentre se trova un altro container riapplica il metodo. Sembra funzionare, senza nemmeno dover tirare in ballo JScrollPane.
    Grazie mille, come sempre

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 © 2026 vBulletin Solutions, Inc. All rights reserved.