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

    [JAVA] Help! Richiamare metodi e attrib di un Oggetto da un'altro Oggetto

    Sono veramente in piena confusione. Aiutoooooooo !!!

    La mia situazione è questa:
    Ho creato una JFrame "FormPrincipale" con vari oggetti inseriti al suo interno, premendo su un suo tasto, apro (istanziandolo) un'altro JFrame "FormInserimento" con cui faccio una operazione di inserimento da tastiera in un campo (in realta è ovviamente un oggetto) JTextField, lo leggo con getText() e poi prima di chiudere il JFrame "FormInserimento" con una dispose() vorrei inserire quello che ho letto in un campo (che è sempre un altro oggetto) all' interno di "FormPrincipale". Quì nasce il problema: Come faccio a riferirmi al JFrame "FormPrincipale" ed agli oggetti messi al suo interno, dal JFrame "FormInserimento" chiamato e creato all'interno del JForm"FormPrincipale" ???

    Non so se sono stato chiaro.


    CLASS jFormPrincipale:

    codice:
    public class jFormPrincipale extends javax.swing.JFrame {
        ...
        jTextClasse = new javax.swing.JTextField();  // dove voglio inserire quanto letto
    
        
        jMenuClassIns = new javax.swing.JMenuItem();  // Menu dove chiamo JFrameInserimento
        jMenuClassIns.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt){ 
                     jMenuClassInsActionPerformed(evt);   // e scritta sotto cosa fa
                }
            });
        private void jMenuClassInsActionPerformed(java.awt.event.ActionEvent evt)   
            {  JFormInserimento jfi = new JFormInserimento();  //Chiamo il JFrameInserimento
                jfi.setVisible(true);
                .... 
             }   
    }

    Class jFormInserimento
    codice:
    public class JFormInserimento extends javax.swing.JFrame {
        String textClasse="";
        ....
        jTextInsClasse = new javax.swing.JTextField();   // Dove faccio l'inserimento da tastiera 
        jTextInsClasse.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jTextInsClasseActionPerformed(evt);
                }
            });
        private void jTextInsClasseActionPerformed(java.awt.event.ActionEvent evt)
           { textClasse=jTextInsClasse.getText();  //Leggo quanto inserito 
                                 
                               <----------- ??????? COME SALVO NEL jFormPrincipale TALE DATO
                                                  LETTO textClasse ????????????????????????????????       
              setVisible(false);
              dispose();
           } 
    }
    L'indentatura non mi riesce a farla uscire .... spiacente

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Intanto potresti mettere il codice tra i tag [*CODE] [*/CODE] (Togli l'asterisco), così
    diventa tutto più leggibile.
    Poi, come varie volte suggerito nel forum, potresti passare un riferimento di FormPrincipale
    al secondario. In quest'ultimo fai le assegnazioni o invochi il metodo per impostare i campi
    del form principale.
    Ciao, Brainjar

  3. #3
    scusa la domanda forse sciocca, come faccio a passergli il riferimento?

    sono bloccato da 2 giorni

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    codice:
        // ------------------------------------------------------------------------
        // Questo codice va nel form inserimento 
        // ------------------------------------------------------------------------
        // Dichiari un oggetto JFrame che ti rappresenta il form principale nella form inserimento
        private javax.swing.JFrame lfp;  
     
        // Dichiari un secondo costruttore per il form inseriento che riceve un oggetto JFrame
        public JFormInserimento(javax.swing.JFrame fp) {
              // imposti il riferimento locale al form principale
              lfp = fp;   
        }
    
        ......
        .....
              textClasse=jTextInsClasse.getText();  //Leggo quanto inserito
     
              // Qui assegni alla variabile del form principale il valore letto....
              lfp.valoreInserito = textClasse
              
              setVisible(false);
              dispose();
        ..... 
        ...... 
    
        // ------------------------------------------------------------------------
    
        // ------------------------------------------------------------------------
        // Questo codice va nel form Principale 
        // ------------------------------------------------------------------------
        // Dichiari una variabile che ti conterrà il valore inserito .....
        public String valoreInserito = null; 
     
        private void jMenuClassInsActionPerformed(java.awt.event.ActionEvent evt)   
            {
            // Sostituisci la riga simile con questa.   
            JFormInserimento jfi = new JFormInserimento(this );  //Chiamo il JFrameInserimento
                jfi.setVisible(true);
                .... 
             }
    Ciao, Brainjar

  5. #5
    GRAZIEEEEEEEEEEE !!!!

  6. #6
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Prego.
    Tieni presente che è buona norma, tra l'altro disattesa da me nell'esempio che ti ho inviato,
    non avere campi di istanza pubblici, ma privati. Per gestirli utilizzare metodi pubblici.
    Nel caso specifico :
    codice:
        // ------------------------------------------------------------------------
        // Questo codice va nel form Principale 
        // ------------------------------------------------------------------------
        // Dichiari una variabile che ti conterrà il valore inserito .....
    
         // public String valoreInserito = null; <- var. privata 
         private String valoreInserito = null; 
         
         // Nuovo metodo pubblico 
         public void setValore(String s) {
                valoreInserito = s; 
                // ovviamente qui potresti mettere il codice effettivo che ti serve ...     
         }
    
    
        // ------------------------------------------------------------------------
        // Questo codice va nel form inserimento 
        // ------------------------------------------------------------------------
    
        // Al posto di :
        // lfp.valoreInserito = textClasse; 
        lfp.setValore(textClasse); // <- richiami il metodo pubblico....
    Ciao, Brainjar

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    Ascolta, ti consiglio di rivolgerti ad un grande per quanto riguarda Java: Gianluca Sartori, un Maestro... Ha anche recentemente inserito un articolo su quanto chiedevi.

    ---

    Forza Napoli
    -- John --

  8. #8
    grande ... e come lo rintraccio??
    sai il link del tread che ha inserito?

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.