Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: Swing - Creazione form

  1. #1

    Swing - Creazione form

    Ciao, adesso sto iniziando a capire un pò meglio il meccaniscmo di Swing, ma a volte mi capitano cose inspiegabili che mi danno ai nervi..

    allora io dovrei creare un form.. e ho creato per prima cosa una pannello generale, di tipo BorderLayout, adesso in SOUTH ho messo i tasti (fin qui tutto ok), in CENTER un pannello di nome form di tipo:
    codice:
    form.setLayout(new GridLayout(3,3));
    il problema è che il pannello me lo "adatta" alla grandezza della mia pagina.. cioè i campi dove inserire i testi (TextField) sono larghissimi (addirittura quadrati)..VVoVe:

    come faccio a impostare la grandezza del pannello form (ho già provato con setSize ma niente)?? in modo tale da visualizzarlo come un semplice form dove inserire dati (es iscrizione ad un sito)??

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

    Re: Swing - Creazione form

    Originariamente inviato da crystal86
    come faccio a impostare la grandezza del pannello form (ho già provato con setSize ma niente)?? in modo tale da visualizzarlo come un semplice form dove inserire dati (es iscrizione ad un sito)??
    Ma allora non hai ancora compreso i layout manager ... tanto meno BorderLayout!

    Il CENTER di un BorderLayout occupa tutto lo spazio possibile del contenitore che non è occupato da eventuali componenti nei 4 lati. Ed è così ... non ci puoi fare nulla!!
    E setSize() non serve a niente ... nemmeno setPreferredSize(), perché per la parte CENTER il BorderLayout non rispetta il preferred size del componente.

    Non ti va bene? Scegli un altro layout manager!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    ho tolto del tutto il BorderLayout del pannello principale, pero adesso mi ritrovo tutti i miei componenti in alto.. come faccio ad organizzarli..

    sto provando con setBounds ma non me li sposta..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    ho tolto del tutto il BorderLayout del pannello principale, pero adesso mi ritrovo tutti i miei componenti in alto.. come faccio ad organizzarli..

    sto provando con setBounds ma non me li sposta..
    Le possibilità sono 2 per un "contenitore":

    a) Usa un layout manager, pertanto posizione/dimensione dei componenti dipende dai criteri del layout manager e setLocation()+setSize() oppure setBounds() su un componente non ha alcun effetto.

    b) Non usa un layout manager ( contenitore.setLayout(null) ) e in tal caso setLocation()+setSize() oppure setBounds() su un componente ha effetto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Allora non posso fare niente, perchè il mio pannello principale e di tipo CardLayout visto che devo continuamente passare da una finestra all'altra..

    cmq io adesso ho il seguente problema, in questo form ho inserito un bottone aggiungi che mi permette di creare un oggetto di tipo agenzia, ma non so come far cambiare in automatico il nome dell'oggetto...

    codice:
    public void actionPerformed(ActionEvent e) {
                if (e.getSource() == b) {
    
                        String name= nome.getText();
                        Agenzia name= new Agenzia(nome.getText(),indirizzo.getText(),telefono.getText());
        ...
    così ovviamente non mi funziona, ma io vorrei che al posto di name venga creato l'oggetto agenzia con il nome che gli passiamo come parametro.. è possibile??

    p.s. altra domandina, che differenza c'è tra getText() e getName()??

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    Allora non posso fare niente, perchè il mio pannello principale e di tipo CardLayout visto che devo continuamente passare da una finestra all'altra..
    Non puoi fare "niente" in che senso???

    Originariamente inviato da crystal86
    ma non so come far cambiare in automatico il nome dell'oggetto...
    Gli oggetti non hanno nome ..... al massimo c'è una variabile che referenzia l'oggetto.

    Originariamente inviato da crystal86
    io vorrei che al posto di name venga creato l'oggetto agenzia con il nome che gli passiamo come parametro.. è possibile??
    A quale scopo??? Per fare cosa??? È questo che devi spiegare!

    Originariamente inviato da crystal86
    p.s. altra domandina, che differenza c'è tra getText() e getName()??
    getText() è dei componenti di testo (JTextComponent e sottoclassi). getName() è di java.awt.Component, ogni componente può avere un nome che può servire al programmatore per identificazione o cose del genere.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    Non puoi fare "niente" in che senso???
    se adesso tolgo il layout ad una pagina non posso più tornare indietro visto che non ho più un Card Layout..
    Gli oggetti non hanno nome ..... al massimo c'è una variabile che referenzia l'oggetto.

    A quale scopo??? Per fare cosa??? È questo che devi spiegare!
    Infatti hai ragione, che scemo..

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    se adesso tolgo il layout ad una pagina non posso più tornare indietro visto che non ho più un Card Layout..
    No, non hai capito.
    Devi avere un contenitore principale che ha il CardLayout. Su questo non cambi il layout manager ... rimane CardLayout e basta.

    Dentro questo contenitore avrai N tuoi pannelli (es. JPanel). Su questi puoi fare quello che ti pare!! Togliere il layout manager (=posizionamento assoluto dei componenti) o mettere un certo layout manager.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    ok ci provo..

  10. #10
    Ragazzi volevo chiedervi una cosa, nella creazione del form ad un certo punto ci ho messo un combobox, il quale in base alla scelta effettuata mi fara apparire dei textfield anziche altri:

    codice:
                txt1= new JLabel("Nome: ", JLabel.RIGHT);
                nome = new JTextField(25);
    
                txt2= new JLabel("Indirizzo: ", JLabel.RIGHT);
                indirizzo = new JTextField(25); // larghezza in caratteri
    
                txt3= new JLabel("Telefono: ", JLabel.RIGHT);
                telefono = new JTextField(10); 
    
                txt4= new JLabel("Prezzo Settimanale: ", JLabel.RIGHT);
                prezzoSettimanale = new JTextField(25); // larghezza in caratteri
    
                txt5= new JLabel("Supplemento Seconda settimana: ", JLabel.RIGHT);
                supplSettSucc = new JTextField(25); // larghezza in caratteri
    
                txt6= new JLabel("Servizi: ", JLabel.RIGHT);
                servizi = new JTextField(25); // larghezza in caratteri
    
                //combobox per vedere se appartamento o hotel
                txt7= new JLabel("Tipologia Alloggio: ", JLabel.RIGHT);
                JComboBox tip_all = new JComboBox(items);
                
                 form.add(txt1);form.add(nome);
                form.add(txt2);form.add(indirizzo);
                form.add(txt3);form.add(telefono);
                form.add(txt4);form.add(prezzoSettimanale);
                form.add(txt5);form.add(supplSettSucc);
                form.add(txt6);form.add(servizi);
                form.add(txt7);form.add(tip_all);
    
                if(tip_all.getSelectedItem()== "Hotel"){
                                txt8= new JLabel("Stelle: ", JLabel.RIGHT);
                                stelle = new JTextField(25); // larghezza in caratteri
                                form.add(txt8);form.add(stelle);
                }else if (tip_all.getSelectedItem()== "Appartamento"){
                                txt9= new JLabel("Stanze: ", JLabel.RIGHT);
                                stanze = new JTextField(25); // larghezza in caratteri
                                form.add(txt5);form.add(stanze);
                }
    vorrei che come cambio il valore nella combobox mi cambi dinamicamente i textfield da visualizzare sotto.. come potrei fare?? devo assegnare degli actionevent al combobox??

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.