Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225

    Input da finestra!!!!

    Ciao a tutti!


    Devo fare un programma per mio padre, e ho questo problema:
    ad un certo punto del mio programma devo prendere in input DA UNA FINESTRA un codice ed un nome di un cliente, e questo codice e questo nome devo fare in modo che vengano passati al costruttore della classe Clienti che ho creato!
    Ho fatto una JFrame con due JTextField ed un bottone "INSERISCI".
    Io vorrei che quando clikko sul bottone, si crei un oggetto di classe Cliente con codice e nome che sono stati inseriti nei JTextField, e vorrei che questo oggetto venisse inserito in una lista!

    Sono ore che provo a fare questa cosa, ma non ci riesco!
    E' il primo programma che provo a fare!

    Qualcuno può aiutarmi?
    Grazie infinite!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Cosa intendi dire con "è il primo programma che provo a fare"?
    Se è per davvero il promo programma in Java che fai, partire con le interfacce grafiche è la cosa più sbagliata: non avendo ancora dimestichezza con il linguaggio non vai da nessuna parte.

    Ad ogni modo, per risolvere il tuo problema, dovresti fare qualcosa del genere:
    codice:
    // Suppongo che le JTextField si chiamino jtfCodice e jtfNome;
    
    public void actionPerformed(ActionEvent ae) {
       // Siamo nell'ascoltatore del pulsante
       // Suppongo che il costruttore di Clienti prenda i parametri in questo ordine: numero, nome
       Clienti c = new Clienti(jtfCodice.getText(), jtfNome.getText());
    
       // Ora inseriamo nella lista (che lista? Suppongo anche qui una JList di nome lista).
       // Per farlo dobbiamo avere un vettore di elementi da passare (che verrà di volta in
       // volta aggiornato con le nuove modifiche, sarà un Vector che chiamo vettore)
       vettore.add( c );
       lista.setListData( vettore );
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225

    Grazie!

    Grazie mille!
    Sei stato di vero aiuto!

    E' il mio primo "programmone" a interfacce grafiche!
    Più o meno ho già sperimentato tutti i componenti grafici!

    Grazie di nuovo!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225

    Altro bottone!

    Ah...!!!
    Un'altra cosa!
    Sempre in quella finestra ho un altro bottone "RIMUOVI", che ovviamente deve cancellarmi dalla lista un oggetto cliente precedentemente inserito!

    L'ascoltatore di quest'altro bottone può essere nella solita classe?
    Se sì, come faccio a dire quale evento corrisponde ad un bottone, e quale all'altro?

    GRAZIE MILLE!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Certo.
    Più pulsanti possono condividere lo stesso Listener (e di solito si usa fare proprio così, diminuendo il numero di oggetti allocati).

    Per discriminare fra i pulsanti, devi utilizzare l'oggetto ActionEvent che viene passato al metodo actionPerformed():
    codice:
    // Supponendo che i due pulsanti si chiamino cmd1 e cmd2:
    
    JButton jb = (JButton) ae.getSource();
    
    if ( jb.equals(cmd1) ) {
       // E' stato premuto il pulsante "cmd1"
    } else {
       // E' stato premuto l'altro pulsante
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225

    Grazie

    GRAZIE MILLE DI NUOVO!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Non c'è di che.
    La prossima volta presta attenzione a rispondere alla discussione, senza aprirne una nuova.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    Ciao sono ancora io!!

    Ho fatto come mi hai suggerito tu, ma mi dà un errore e non riesco capire il perchè!
    L'errore è questo:
    cannot find symbol constructor Cliente(java.lang.String,java.lang.String)

    Ti invio il codice.
    Spero tu possa aiutarmi di nuovo!
    Grazie!

    CLASSE CLIENTE:
    import java.awt.*;
    import javax.swing.*;


    public class Cliente {
    JTextField codice;
    JTextField nome;


    public Cliente(JTextField jtfCodice, JTextField jtfNome) {
    codice = jtfCodice;
    nome = jtfNome;
    }

    }

    CLASSE PANNELLO CLIENTE:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;

    public class PannelloCliente extends JPanel implements ActionListener {


    JButton b1, b2;

    JTextField jtfCodice;
    JTextField jtfNome;

    public PannelloCliente() {
    super();

    setBackground(new Color(24,153,240));

    jtfCodice = new JTextField("Inserire qui codice cliente",18);

    jtfNome = new JTextField("Inserire qui nome cliente",18);

    jtfCodice.setEditable(true);
    jtfNome.setEditable(true);



    b1 = new JButton("INSERISCI");
    b1.addActionListener(this);
    b2 = new JButton("RIMUOVI");

    setLayout(new FlowLayout(FlowLayout.CENTER,5,30));

    add(jtfCodice);
    add(jtfNome);
    add(b1);
    add(b2);
    }

    public void actionPerformed(ActionEvent e) {


    Cliente c = new Cliente(jtfCodice.getText(), jtfNome.getText());
    ListArray clienti = new ListArray();
    clienti.insert(c);

    System.out.println("Lista creata: ");
    System.out.println(clienti);
    }


    }

    QUEST'ULTIMA CLASSE E' QUELLA CHE MI DA' IL PROBLEMA! PERCHè?
    GRAZIE!

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Beh... da come avevi detto prima pensavo (e anche la logica vorrebbe così, circa...) che il tuo costruttore di Cliente prendesse due stringhe (una per il nome e l'altra per il numero).
    Vedo, invece, che prende due JTextField... quindi:
    codice:
    // Al posto di questa cosa qui:
    Clienti c = new Clienti(jtfCodice.getText(), jtfNome.getText());
    
    // Devi mettere
    Clienti c = new Clienti(jtfCodice, jtfNome);
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    GRAZIE DI NUOVO!
    SENZA DI TE NON SAPREI COME AVREI FATTO!

    CIAO CIAO

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.