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

    Swing - Alcune delucidazioni??

    Ciao a tutti, sono un paio di giorni che mi sto impazzendo cercado di capire qualcosa di swing, ma niente da fare..
    ad esempio adesso sono riuscito a creare la schermata iniziale del mio prog dove ho due tasti, adesso vorrei che premendo un tasto cambi la schermata dell'applicazione.. ossia cambiano i tasti, e le opzioni.. come posso implementarlo, devo creare una altro panel da sovrapporre a questo..??

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

    Re: Swing - Alcune delucidazioni??

    Originariamente inviato da crystal86
    Ciao a tutti, sono un paio di giorni che mi sto impazzendo cercado di capire qualcosa di swing, ma niente da fare..
    Non bastano pochi giorni per capire Swing!!! E nemmeno pochi mesi ....
    L'unica è leggere, leggere, leggere (tutorial/libri) e provare, provare, provare (esercitarsi).

    Originariamente inviato da crystal86
    ad esempio adesso sono riuscito a creare la schermata iniziale del mio prog dove ho due tasti, adesso vorrei che premendo un tasto cambi la schermata dell'applicazione.. ossia cambiano i tasti, e le opzioni.. come posso implementarlo, devo creare una altro panel da sovrapporre a questo..??
    Quante "schermate" hai? Poche? Devi cambiare spesso e usare più volte tutte le schermate? O è un qualcosa che non torna indietro, finita una schermata non la devi usare più?

    Perché ci sono diversi approcci. Sfruttare layout/componenti che mostrano sempre solo 1 tra N componenti (es. CardLayout o il componente JTabbedPane). Oppure togliere un componente da un contenitore e aggiungerne un altro (questo è più critico perché il contenitore va validato di nuovo ... tipicamente basta un validate() ).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: Swing - Alcune delucidazioni??

    Originariamente inviato da andbin
    Non bastano pochi giorni per capire Swing!!! E nemmeno pochi mesi ....
    L'unica è leggere, leggere, leggere (tutorial/libri) e provare, provare, provare (esercitarsi).
    Si ma purtroppo un corso di laurea dura 2 mesi e mezzo..
    Quante "schermate" hai? Poche? Devi cambiare spesso e usare più volte tutte le schermate? O è un qualcosa che non torna indietro, finita una schermata non la devi usare più?

    Perché ci sono diversi approcci. Sfruttare layout/componenti che mostrano sempre solo 1 tra N componenti (es. CardLayout o il componente JTabbedPane). Oppure togliere un componente da un contenitore e aggiungerne un altro (questo è più critico perché il contenitore va validato di nuovo ... tipicamente basta un validate() ).
    Allora cerco di spiegarti un po come voglio impostare l'applicaizone..
    Frame principale(Contiene 2 tasti [Aggiungi Agenzia, Gestisci Agenzia])
    [Aggiungi Agenzia]--> dovrei creare un form di inserimento con i campi per creare un agenzia(nome, indirizzo, ecc..) per poi salvarli;
    [Gestisci Agenzia]--> che mi fa visualizzare le agenize gia create e sia possibile selezionare una e gestirla(ossia creare una nuova schermata dove sia possibile aggiungere clienti, prenotazioni, alloggi, ecc..)

    alla fine dell'inserimento ad esempio di una nuova agenzia penso di inserire un tasto che permetta di tornare alla schermata precedente..

    Pero non riesco proprio a capire che event devo associare ad un Jbutton per far si che mi cambi la "schermata"..

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

    Re: Re: Re: Swing - Alcune delucidazioni??

    Originariamente inviato da crystal86
    Pero non riesco proprio a capire che event devo associare ad un Jbutton per far si che mi cambi la "schermata"..
    Sul JButton registri un ActionListener ... fin qui non ci sono dubbi. Cosa poi debba fare il listener in actionPerformed() .... beh, dipende da quale approccio scegli per "cambiare" i componenti (i tuoi pannelli).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    Re: Re: Re: Re: Swing - Alcune delucidazioni??

    Originariamente inviato da andbin
    beh, dipende da quale approccio scegli per "cambiare" i componenti (i tuoi pannelli).
    Il problema e che non sò proprio come si possa fare.. io avevo pensato a una cosa del genere:
    codice:
    public class  MyFrame extends JFrame {
    
        public MyFrame () {
        
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int screenHeight = screenSize.height;
        int screenWidth = screenSize.width;
        setSize (800,600);
        setLocation (screenWidth/5,screenHeight/8);
        Image img = kit.getImage("src/Image//icon.gif");
        setIconImage(img);
        setTitle("Management Travels - © Crisomolo Alberto");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
        //in questo pannello potremo aggiungere componenti come JButton…
        Container c = getContentPane();
    
        MyPanel panel = new MyPanel();
    
        c.add(panel);
    
        this.setVisible(true);
        }
    
        public class MyPanel extends JPanel implements ActionListener {
            JPanel panbut=new JPanel();
            JPanel panimg=new JPanel();
            JButton b, b2;
    
             public MyPanel(){
                super();
                setLayout(new BorderLayout());
    
                lab1.setFont( new Font( "Arial", Font.BOLD, 30 ) );
                JLabel world=new JLabel(new ImageIcon("src/Image//world_gold.gif"));
                b = new JButton("Aggiungi Agenzia");
                b2 = new JButton("Gestisci Agenzia");
    
                b.addActionListener(this);
    
                panimg.setBackground(Color.DARK_GRAY);
                panimg.setLayout(new BorderLayout());
                panimg.add(world, BorderLayout.CENTER);
                
                add(lab1,BorderLayout.NORTH);
                add(panimg,BorderLayout.CENTER);
    
                   panbut.setLayout(new GridLayout(1, 2, 10, 0));
                   panbut.add(b);
                   panbut.add(b2);
                   add(panbut, BorderLayout.SOUTH);
                
            }
    
           public void actionPerformed(ActionEvent e) {
                if (e.getSource() == b) {
                        Agenzie agepan= new Agenzie();
                        this.add(agepan);
                }else if(e.getSource() == b2) {
    
                }
            }
        }   
           public class Agenzie extends JPanel{
                JPanel panbut=new JPanel();
                 JButton b3;
    
                 public Agenzie(){//qui non entra proprio
                    //inseriro il form per aggiungere una nuova agenzia 
                    b3 = new JButton("Crea Agenzia");
                     panbut.add(b3);
                     add(panbut);
                 }
           }
        
    }
    ossia che quando premo il tasto AGGIUNGI AGENZIA mi crei un nuovo pannello e lo sovreapponesse a quello precedente, ma non so se sia corretta come implementazione..

    infatti non mi funziona..

  6. #6
    up

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

    Re: Re: Re: Re: Re: Swing - Alcune delucidazioni??

    Originariamente inviato da crystal86
    Il problema e che non sò proprio come si possa fare..
    La cosa più semplice è usare un CardLayout. Devi avere un "contenitore" (potrebbe essere un tuo JPanel o il content pane del JFrame ... non so, vedi tu). Su questo contenitore imposti il CardLayout. Istanzi tutti i tuoi N pannelli e li inserisci dentro questo contenitore. Poi con show() del CardLayout scegli quello da visualizzare.
    Il tutorial della Sun lo spiega: How to Use CardLayout
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.