Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    67

    passaggio di variabili da una classe all'altra

    Buongiorno, ho la necessità di passare il valore di una variabile da una classe all'altra...
    chi sa aiutarmi???????????

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

    Re: passaggio di variabili da una classe all'altra

    Originariamente inviato da tax971
    ho la necessità di passare il valore di una variabile da una classe all'altra...
    Ma così dici niente .... come sono fatte le tue classi? Quali oggetti hai istanziato? Dove e come deve essere assegnato il valore?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    67
    Ho 2 jpanel, il primo richiama il secondo, sul secondo ho bisogno di avere un valore che inserisco in una casella di testo nel primo

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    67
    Devo essere più esplicito??

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    67
    codice:
    class JCambioNCoils extends JPanel implements ActionListener
        {
        public JTextField matr;
        public JLabel lmatr;
        public JButton cerca;
        public Connection con;
        public Statement st;
        public int result;
        public JTable tabella; 
        public String[] Squal, colHeads;
        public int i;
        public String vmatr;
        public Object[][] data;
        public JCambioNCoils()
            {     
            matr = new JTextField(10);           
            lmatr = new JLabel("Matricola");
            cerca = new JButton(" Cerca ");
            lmatr.setBounds(70,30,100,25);   
            matr.setBounds(70,50,100,30);   
            cerca.setBounds(250,50,150,30);
            add(lmatr);
            add(matr);
            add(cerca);
            matr.addActionListener(this);
            cerca.addActionListener(this); 
            }
            
         public void actionPerformed(ActionEvent evento)
    	{  
    	Object s2 = evento.getSource();
    	if (s2==cerca)
    	    {  
    	     int xLoc=300, yLoc=50;   
    	     valoriTabella1 frame11 = new valoriTabella1(xLoc,yLoc);
                 frame11.setVisible(true);
                }     
             }  
        }  
    
    class cambioNCoils extends JFrame                                   
        {                                                                    
        public cambioNCoils(int xLoc,int yLoc)                            
            {                                                                
            setSize(480,200);                                                
            setTitle("Certificati S.I.M. s.r.l. Cambio Matricola Coils   by Antonio Pompilii");        
            setResizable(false);                                             
            setLocation(xLoc,yLoc);                                            
            JCambioNCoils JCambioNCoils1 = new JCambioNCoils();
            Container contentPane = getContentPane();            
            JCambioNCoils1.setLayout(null);   
            contentPane.add(JCambioNCoils1);                                    
            }
        }
    
    
    class valoriTabella extends JPanel
        {
        public Connection con;
        public Statement st;
        public int results;
        public String upd, piro, vmatr;
        JTable tabella;
        JTextField J1, J2;
        
        public valoriTabella()
            {     
            int i,i1;  
            try
    	    {
    	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	    con = DriverManager.getConnection("jdbc:odbc:Coils");
    	    st = con.createStatement();
                upd = "SELECT * FROM Coils1 WHERE fmatr = '"+ vmatr +"';";
    	    ResultSet results = st.executeQuery(upd);
    	    i=1;
    	    String[] colHeads = {"Qualità"};
    	    String[] Squal = new String[5];
    	    Squal[1]="";	    
    	    Squal[2]="";
    	    Squal[3]="";
    	    Squal[4]="";
    	    
                while (results.next())
                    {
    		Squal[i] =results.getString("fmatr");
    	        i++;
    	        }
    	      i=1;  
    	     Object[][] data =
    	         {
    	            {Squal[1],i},
    	            {Squal[2],i},
    	            {Squal[3],i},
    	            {Squal[4],i},	         
    	            
                     };
                  JTable tabella = new JTable(data,colHeads);    
                  JScrollPane jsp = new JScrollPane(tabella);
                  add(tabella);	
                }
            catch(Exception e)
                {
                  J2.setText("Errore: "+e);
                }
            
            }   
        }
    
    class valoriTabella1 extends JFrame                                  
        {                                                                    
        public valoriTabella1(int xLoc,int yLoc)                          
            {                                                                
            setSize(150,400);                                                
            setTitle("Certificati S.I.M. s.r.l.   by Antonio Pompilii");    
            setResizable(false);                                            
            setLocation(xLoc,yLoc);                                           
            valoriTabella valoriTabella2 = new valoriTabella();
            Container contentPane = getContentPane();                        
            contentPane.add(valoriTabella2);                           
            }
        }
    Questo è il codice, la prima classe richiama la seconda, a cui deve passare il valore della JTextField...

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

    Moderazione

    Regolamento, punto 6: utilizzare i tag CODE (non LIST) quando si posta il codice, per facilitare la lettura... altrimenti diventa tutto un'accozzaglia...


    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

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Per il tuo problema... puoi semplicemente passare al costruttore del secondo, un riferimento del primo. Quindi, nel primo, prevedere una serie di metodi per poter accedere ai membri privati.

    Così, nel primo JPanel, che richiama il secondo:

    codice:
    SecondoJPanel sjp = new SecondoJPanel( this );
    Nel secondo, avrai questo costruttore:

    codice:
    private PrimoJPanel pjp;
    ...
    public SecondoJPanel(PrimoJPanel pjp) {
       ...
       this.pjp = pjp;
    }
    E, nel secondo, lavori sul primo utilizzando la variabile privata "pjp".


    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
    Apr 2009
    Messaggi
    67
    Ciao leleFT, intanto grazie per la risposta,
    poi ho dimenticato di dire che sono veramente alle prime armi con java,
    e non ho propio capito quello che devo fare...
    poresti essere un po' più chiaro ...grazie
    ps.
    scusa per non aver inserito il list, ma non so neanche come si fa...

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Sei alle prime armi con Java e usi le interfaccie grafiche? Ricorda che l'utilizzo delle GUI su Java deve avvenire DOPO che si è presa dimestichezza con il linguaggio e, soprattutto, con la filosofia ObjectOriented... altrimenti non si va proprio da nessuna parte.

    Ad ogni modo, non ho letto per intero il tuo codice, quindi non so dove tu vada ad istanziare il pannello... certo è che da qualche parte tu avrai un'istruzione new per creare il "secondo pannello"... è lì che devi intervenire, aggiungendo il this all'interno delle parentesi.

    E devi intervenire sul costruttore della classe del secondo pannello, come ti ho indicato.

    Se non sai cos'è un costruttore, lascia perdere le GUI e concentrati sui fondamenti della OOP (Object Oriented Programming). Senza questi concetti ben chiari, davvero non caverai un ragno dal buco.


    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
    Apr 2009
    Messaggi
    67
    Ciao ancora, essere all prime armi pre me significa che è un mesetto che ci scommetto, in quanto sto facendo un programma per la mia azienda, e vado a vedere quello di cui ho bisogno, man mano che mi occorre... so che non è il modo migliore per approcciare con un linguaggio di programmazione, ma il tempo non è tanto...
    Comunque ho inserito il codice comi mi hai detto tu... nella compilazione tutto bene poi nell'esecuzione va in errore... puoi dare un'occhiata... grazie
    Ho evidenziato con degli asterischi il codice inserito

    codice:
    class JCambioNCoils extends JPanel implements ActionListener
        {
        public JTextField matr;
        public JLabel lmatr;
        public JButton cerca;
        public Connection con;
        public Statement st;
        public int result;
        public JTable tabella; 
        public String[] Squal, colHeads;
        public int i;
        public String vmatr;
        public Object[][] data;
        public JCambioNCoils()
            {     
            matr = new JTextField(10);           
            lmatr = new JLabel("Matricola");
            cerca = new JButton(" Cerca ");
            lmatr.setBounds(70,30,100,25);   
            matr.setBounds(70,50,100,30);   
            cerca.setBounds(250,50,150,30);
            add(lmatr);
            add(matr);
            add(cerca);
            matr.addActionListener(this);
            cerca.addActionListener(this); 
            }
            
         public void actionPerformed(ActionEvent evento)
    	{  
    	Object s2 = evento.getSource();
    	if (s2==cerca)
    	    {  
                 vmatr=matr.getText(); 
    	     int xLoc=300, yLoc=50;   
    	     valoriTabella1 frame11 = new valoriTabella1(xLoc,yLoc);
                 valoriTabella sjp = new valoriTabella(this); //*********************
                 frame11.setVisible(true);
                 
                }     
             }  
        }  
    
    class cambioNCoils extends JFrame                                   
        {                                                                    
        public cambioNCoils(int xLoc,int yLoc)                            
            {                                                                
            setSize(480,200);                                                
            setTitle("Certificati S.I.M. s.r.l. Cambio Matricola Coils   by Antonio Pompilii");        
            setResizable(false);                                             
            setLocation(xLoc,yLoc);                                            
            JCambioNCoils JCambioNCoils1 = new JCambioNCoils();
            Container contentPane = getContentPane();            
            JCambioNCoils1.setLayout(null);   
            contentPane.add(JCambioNCoils1); 
             
            }
        }
    
    
    class valoriTabella extends JPanel
        {
        public Connection con;
        public Statement st;
        public int results;
        public String upd, piro, v1matr;
        JTable tabella;
        JTextField J1, J2;
        private JCambioNCoils pjp;  //********************************
        
        public valoriTabella()
            {     
            J2=new JTextField();
            add(J2);
            int i,i1;  
            v1matr = pjp.matr.getText();//******************************
                   try
    	    {
    	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	    con = DriverManager.getConnection("jdbc:odbc:Coils");
    	    st = con.createStatement();
                upd = "SELECT * FROM Coils1 WHERE fmatr = '"+ v1matr +"';";
    	    ResultSet results = st.executeQuery(upd);
    	    i=1;
    	    String[] colHeads = {"Qualità"};
    	    String[] Squal = new String[5];
    	    Squal[1]="";	    
    	    Squal[2]="";
    	    Squal[3]="";
    	    Squal[4]="";
    	    
                while (results.next())
                    {
    		Squal[i] =results.getString("fmatr");
    	        i++;
    	        }
    	      i=1;  
    	     Object[][] data =
    	         {
    	            {Squal[1],i},
    	            {Squal[2],i},
    	            {Squal[3],i},
    	            {Squal[4],i},	         
                     };
                  JTable tabella = new JTable(data,colHeads);    
                  JScrollPane jsp = new JScrollPane(tabella);
                  add(tabella);	
                }
            catch(Exception e)
                {
    
                }
            
            }   
            
        public valoriTabella(JCambioNCoils pjp)//***************************
                {
                    this.pjp=pjp;
                }        
        }
    
    class valoriTabella1 extends JFrame                                  
        {                                                                    
        public valoriTabella1(int xLoc,int yLoc)                          
            {                                                                
            setSize(150,400);                                                
            setTitle("Certificati S.I.M. s.r.l.   by Antonio Pompilii");    
            setResizable(false);                                            
            setLocation(xLoc,yLoc);                                           
            valoriTabella valoriTabella2 = new valoriTabella();
            Container contentPane = getContentPane();                        
            contentPane.add(valoriTabella2);                           
            }
        }

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.