Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Jpanel a comparsa

  1. #1

    Jpanel a comparsa

    Ciao a tutti ...

    Vorrei chiedervi se esista la possibilità di far comparire e scomparire un jpanel da una finestra


    Esempio...

    Clicco un toggle button e mi compare un jpanel con altre caselle di testo per aggiungere dati ... clicco di nuovo il toggle button e mi scompare chiaramente ridimensionando la finestra senza lasciare lo spazio vuoto quando sparisce il pannello


    E' possibile ... se si qualcuno è così gentile da farmi vedere come fare ???


    Grazie a tutti per la disponibilità

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

    Re: Jpanel a comparsa

    Originariamente inviato da SHARKSEAL
    Vorrei chiedervi se esista la possibilità di far comparire e scomparire un jpanel da una finestra
    Le possibilità in genere sono 2:
    O si "gioca" sulla visibilità del componente. Cioè il componente è sempre presente strutturalmente in un contenitore e si cambia solo la visibilità con setVisible(...). Se di N componenti solo 1 deve essere visibile condividendo lo stesso spazio, si può anche sfruttare un CardLayout.

    Oppure si "gioca" sul fatto di rimuovere e reinserire (se la stessa istanza o una nuova istanza ... dipende) strutturalmente il componente nel contenitore. Ma qui bisogna vedere in quale layout manager.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Grazie andbin gentilissimo come sempre !!!


    Ma usando Netbeans per disegnare la finestra... dovrei mettere il jpanel in "others component" altrimenti mi si sovrappongono e mi si sballa tutta la frame???


    Ne approfitto per chiederti anche un consiglio ...Io uso Netbeans ...ma sporca molto il codice sopprattutto quando si usa l'ambiente visuale per le jframe ... avresti qualcosa di meglio da consigliarmi??? Eclipse ad esempio è piu pulito ma il VE è scarso rispetto a Netbeans ... mi suggerisci qualcosa di piu professionale o magari una buona accoppiata tra codice e editor visuale



    Grazie andbin !!!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da SHARKSEAL
    Ma usando Netbeans per disegnare la finestra... dovrei mettere il jpanel in "others component" altrimenti mi si sovrappongono e mi si sballa tutta la frame???
    Non so che dirti, primo perché NetBeans non lo conosco e secondo perché normalmente tendo a pensare in termini di cosa offre AWT/Swing .... non cosa e dove cliccare su un IDE per disegnare qualcosa della interfaccia.

    Comunque prova questo esempio basilare:

    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class TestFrame extends JFrame {
        private JToggleButton button1;
        private JToggleButton button2;
        private JPanel panel1;
        private JPanel panel2;
    
        public TestFrame() {
            super("Test");
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
            button1 = new JToggleButton("Pannello 1");
            button2 = new JToggleButton("Pannello 2");
    
            panel1 = new JPanel();
            panel1.setBorder(BorderFactory.createTitledBorder("Il pannello 1"));
            panel1.setPreferredSize(new Dimension(300, 100));
            panel1.setMaximumSize(new Dimension(300, 100));
            panel1.setVisible(false);
            panel1.setAlignmentX(0.0f);
    
            panel2 = new JPanel();
            panel2.setBorder(BorderFactory.createTitledBorder("Il pannello 2"));
            panel2.setPreferredSize(new Dimension(200, 140));
            panel2.setMaximumSize(new Dimension(200, 140));
            panel2.setVisible(false);
            panel2.setAlignmentX(0.0f);
    
            Container contentPane = getContentPane();
            contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
    
            contentPane.add(button1);
            contentPane.add(button2);
            contentPane.add(panel1);
            contentPane.add(panel2);
    
            button1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    panel1.setVisible(button1.isSelected());
                    pack();   // ridimensiona il frame alla "giusta" dimensione preferita
                }
            });
    
            button2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    panel2.setVisible(button2.isSelected());
                    pack();   // ridimensiona il frame alla "giusta" dimensione preferita
                }
            });
    
            pack();   // ridimensiona il frame alla "giusta" dimensione preferita
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new TestFrame().setVisible(true);
                }
            });
        }
    }
    Seleziona in qualunque combinazione i due toggle button e vedi cosa succede per i pannelli e la finestra.

    Originariamente inviato da SHARKSEAL
    Io uso Netbeans ...ma sporca molto il codice sopprattutto quando si usa l'ambiente visuale per le jframe ... avresti qualcosa di meglio da consigliarmi???
    Io una risposta l'avrei .... ma forse non ti piacerà: scrivere "a mano" il codice per la creazione/gestione della interfaccia utente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Grazieeeee lo provo subito !!!

    Invece la tua risposta mi piace molto ... perchè è tipica di chi conosce java come si dovrebbe conoscere ...(dalla documentazione java più che un IDE) quindi ti dico che non solo l'aspettavo ma l' apprezzo e la condivido pienamente
    infatti credo che presto abbandonerò il supporto Ide per creare l'interfaccia...


    Grazie andbin ... spero tu possa insegnarmi tanto


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