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

    [JAVA]Lettura testo da textField

    Ho 2 classi java,in una c'è la parte dell'interfaccia e nell'altra c'è la classe per gestire i Bottoni.

    Quando premo un bottone il programma dovrebbe leggere i valori inseriti nelle TextField per poi essere scritte su un database.

    Quindi ho fatto così:

    codice:
    NELLA CLASSE DELL'INTERFACCIA:
    
    pulsante.addActionListener(new GestoreBottone(input1.getText(),
    input2.getText(),input3.getText(),input4.getText(),input5.getText()));
    
    NELLA CLASSE DEL GESTORE:
    
    class GestoreBottone implements ActionListener
    {
        String inp1;
        String inp2;
        String inp3;
        String inp4;
        String inp5;
        public GestoreBottone(String in1,String in2,String in3,String in4,String in5)
        {
            this.inp1=""+in1;
            this.inp2=""+in2;
            this.inp3=""+in3;
            this.inp4=""+in4;
            this.inp5=""+in5;
        }
    
    
    IL FRAMMENTO PER INSERIRE DATI NEL DATABASE:
    
    PreparedStatement stmt=con.prepareStatement("INSERT INTO tab(input1,input2,input3,input4,input5)VALUES(?,?,?,?,?)");
                    stmt.setString(1,inp1);
                    stmt.setString(2,inp2);
                    stmt.setString(3,inp3);
                    stmt.setString(4,inp4);
                    stmt.setString(5,inp5);
                    stmt.executeUpdate();
    Il record viene inserito ma tutti i campi sono vuoti,questo perchè non viene letto nessun dato dalle caselle di testo

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Succede perchè costruisci il gestore bottone passandogli le stringhe che rappresentano i contenuti dei text field che evidentemente sono vuoti all'inizio. Passa al costruttore solo i text field:

    new GestoreBottone(input1, input2 ,input3, input4, input5)

    e poi per iserire i dati prelevi in QUEL MOMENTO il testo dei text field:

    stmt.setString(1,input1.gettext());
    stmt.setString(2,input2.gettext());
    stmt.setString(3,input3.gettext());
    stmt.setString(4,input4.gettext());
    stmt.setString(5,input5.gettext());
    stmt.executeUpdate();



  3. #3
    Originariamente inviato da anx721
    Succede perchè costruisci il gestore bottone passandogli le stringhe che rappresentano i contenuti dei text field che evidentemente sono vuoti all'inizio. Passa al costruttore solo i text field:

    new GestoreBottone(input1, input2 ,input3, input4, input5)

    e poi per iserire i dati prelevi in QUEL MOMENTO il testo dei text field:

    stmt.setString(1,input1.gettext());
    stmt.setString(2,input2.gettext());
    stmt.setString(3,input3.gettext());
    stmt.setString(4,input4.gettext());
    stmt.setString(5,input5.gettext());
    stmt.executeUpdate();



    mi da errore

  4. #4
    a quanto pare non si possono passare come parametri oggetti grafici,ne si possono ricevere come parametri.

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Che errore? Hai aggiustato la dichiarazione del costruttore GestoreBottone?

    Qualsiasi oggetto puo essere passato come parametro.

  6. #6
    Originariamente inviato da anx721
    Che errore? Hai aggiustato la dichiarazione del costruttore GestoreBottone?

    Qualsiasi oggetto puo essere passato come parametro.
    Avevo scritto male.
    Non mi da errore,solo che rimane il fatto che non viene letto niente

  7. #7
    codice:
    String aux[]=new String[5];
    public GestoreBottone(TextField protocollo,TextField indirizzo,TextField lingua,TextField categoria,TextField descrizione)
        {
            protocollo=new TextField();
            aux[0]=protocollo.getText();
            indirizzo=new TextField();
            aux[1]=indirizzo.getText();
            lingua=new TextField();
            aux[2]=lingua.getText();
            categoria=new TextField();
            aux[3]=categoria.getText();
            descrizione=new TextField();
            aux[4]=descrizione.getText();
        }
    
    
    stmt.setString(1,aux[0]);
    stmt.setString(2,aux[1]);
    stmt.setString(3,aux[1]);
    stmt.setString(4,aux[1]);
    stmt.setString(5,aux[1]);

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da matrics21
    codice:
    String aux[]=new String[5];
    public GestoreBottone(TextField protocollo,TextField indirizzo,TextField lingua,TextField categoria,TextField descrizione)
        {
            protocollo=new TextField();
            aux[0]=protocollo.getText();
            indirizzo=new TextField();
            aux[1]=indirizzo.getText();
            lingua=new TextField();
            aux[2]=lingua.getText();
            categoria=new TextField();
            aux[3]=categoria.getText();
            descrizione=new TextField();
            aux[4]=descrizione.getText();
        }
    
    
    stmt.setString(1,aux[0]);
    stmt.setString(2,aux[1]);
    stmt.setString(3,aux[1]);
    stmt.setString(4,aux[1]);
    stmt.setString(5,aux[1]);
    Non te li legge perche nel costruttore crei dei nuvi JTextField e per di più prelevi il teso al momento della costruzione. Il testo lo devi prelevare quando ti serve:

    codice:
    String aux[]=new String[5];
    
    JTextField protocollo;
    JTextField indirizzo;
    JTextField lingua;
    JTextField categoria;
    JTextField descrizione;
    
    public GestoreBottone(TextField protocollo,TextField indirizzo,TextField lingua,TextField categoria,TextField descrizione)
        {
            this.protocollo=protocollo;
            this.indirizzo=indirizzo;
            this.lingua=lingua;
            this.categoria=categoria;
            this.descrizione=descrizione;
        }
    
    
    stmt.setString(1,protocollo.gettext()); 
    stmt.setString(2,indirizzo.gettext()); 
    stmt.setString(3,lingua.gettext()); 
    stmt.setString(4,categoria.gettext()); 
    stmt.setString(5,descrizione.gettext());

  9. #9
    funziona tutto adesso.

    Erano giorni che impazzivo.


    GRAZIE



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.