Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    21

    aggiungere jpanel a jpanel

    Salve, premetto che ho iniziato ad usare i componenti Swing da poco...
    Sto cercando di aggiungere un jpanel a un altro jpanel ma non ci riesco..
    Sto usando il layout Absolute e nella classe del Frame sull'action performed di un button ho scritto

    FiltroUguaglianza f = new FiltroUguaglianza();
    jPanel1.add(f);
    validate();

    dove filtro uguaglianza è un oggetto jpanel ma se clicco sul bottone non succede nulla...cosa sto sbagliando?
    (i componenti sono creati automaticamente tramite il builder di netbeans, so che non è il massimo ma per esigenze di tempo non posso mettermi a studiarmi come funzionano nel dettaglio i componenti swing...)

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

    Re: aggiungere jpanel a jpanel

    Originariamente inviato da Wahnsinn
    Sto usando il layout Absolute

    jPanel1.add(f);
    validate();

    tramite il builder di netbeans
    Se jPanel1 ha il Absolute layout, allora jPanel1.validate(), come minimo. Ma il tuo nuovo pannello ha posizione/dimensione?
    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
    Nov 2009
    Messaggi
    21
    il nuovo pannello è un oggetto jpanel con svariati componenti al suo interno.. il mio obiettivo è quello di aggiungere un componente di questo genere ogni volta che clicco sul bottone, tra l'altro mi sta venendo il dubbio se si possa fare una cosa del genere con layout absolute o meno...avevo provato col flow layout ma ho avuto non poche difficoltà a piazzare i componenti dove volevo io...usando il free design si possono aggiungere componenti dinamicamente o devo per forza usare un layout?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Wahnsinn
    il nuovo pannello è un oggetto jpanel con svariati componenti al suo interno.. il mio obiettivo è quello di aggiungere un componente di questo genere ogni volta che clicco sul bottone, tra l'altro mi sta venendo il dubbio se si possa fare una cosa del genere con layout absolute o meno...avevo provato col flow layout ma ho avuto non poche difficoltà a piazzare i componenti dove volevo io...usando il free design si possono aggiungere componenti dinamicamente o devo per forza usare un layout?
    Allora chiariamo bene.

    Una cosa è non usare un layout manager per un certo Container.

    codice:
    JPanel cont = new JPanel();
    cont.setLayout(null);    // No layout
    
    JButton b = new JButton("aaa");
    b.setBounds(10, 10, 100, 30);     // Serve!!!! O setBounds() o setLocation()+setSize().
    cont.add(b);
    Se un "contenitore" non ha layout, i componenti devono essere posizionati/dimensionati esplicitamente.

    Un'altra cosa è usare un layout manager che in NetBeans si chiama, guarda caso, AbsoluteLayout.

    codice:
    JPanel cont = new JPanel();
    cont.setLayout(new AbsoluteLayout());    // Il AbsoluteLayout di NetBeans
    
    JButton b = new JButton("aaa");
    cont.add(b, new AbsoluteConstraints(10, 10, 100, 30));
    Più chiaro ora?
    E se l'add lo fai dopo che il container è già visibile (come nel tuo caso a seguito di un evento successivo), allora avendo AbsoluteLayout devi fare un validate() sul tuo jPanel1.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.