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

    passaggio variabili tra due classi private

    Ciao a tutti, ho da poco cominciato ad utilizzare java, e mi sono trovato di fronte al problema elencato nel titolo, quello che ho fatto è stato dichiarare (uso netbeans) in modo pubblico delle stringhe così da poterle utilizzare per tutte le classi, ed il mio obbiettivo è quello di dare un valore ad una di queste variabili in una classe(es bottone), e stampare questa variabile in un jTextField all'interno di un jDialog, potete aiutarmi?
    es:
    codice:
    String s1="";
    private void BOTTONEActionPerformed(java.awt.event.ActionEvent evt) {                                   
            s1="ciao";
        }
    stampo nel campo di testo:

    codice:
    private void CAMPO_DI_TESTO
    
    ActionPerformed(java.awt.event.ActionEvent evt) {  
              //qui vorrei fare in modo che s1 sia uguale all's1 del bottone                       
            CAMPO_DI_TESTO.setText(s1);
        }

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Non so se ho capito benissimo, cmq...

    Hai due classi che vogliono condividere una stringa.
    Metti la stringa nella classe dove ha più senso che appartenga e la dichiari privata,
    poi aggiungi un metodo setter per modificarla:
    codice:
    private String mystring;
    public void setMystring(String mystring) {
       this.mystring = mystring;
    }
    Quando vuoi modificarla chiami nomeoggetto.setMystring("xyz") se ti trovi al di fuori della classe.
    Ovviamente devi avere un riferimento all'oggetto che contiene mystring.

  3. #3
    Originariamente inviato da c0der
    Non so se ho capito benissimo, cmq...

    Hai due classi che vogliono condividere una stringa.
    Metti la stringa nella classe dove ha più senso che appartenga e la dichiari privata,
    poi aggiungi un metodo setter per modificarla:
    codice:
    private String mystring;
    public void setMystring(String mystring) {
       this.mystring = mystring;
    }
    Quando vuoi modificarla chiami nomeoggetto.setMystring("xyz") se ti trovi al di fuori della classe.
    Ovviamente devi avere un riferimento all'oggetto che contiene mystring.
    Scusa colpa mia che ho cercato di semplificare il problema, in realtà ci sono più stringhe e il mio scopo e confrontarle con dei jTextField, ma il confronto cambia, per esempio se premo un bottone le stringhe assumono un certo valore, se ne premo un'altro cambiano tutte di valore ancora.
    es:
    codice:
    public String s1="",s2="",s3="",s4="",s5="",s6="",s7="",s8=""
     private void BOTTONE_1ActionPerformed(java.awt.event.ActionEvent evt) {                                    
    s1="a";s2="o";s3="s";s4="l";s5="e";s6="q";s7="n";s8="f"; 
    }
     private void BOTTONE_2ActionPerformed(java.awt.event.ActionEvent evt) {                                    
    s1="ar";s2="do";s3="fs";s4="gl";s5="ge";s6="hq";s7="nj";s8="jf"; 
    }
    confronto:
    
    private void CONFRONTOActionPerformed(java.awt.event.ActionEvent evt) {   
    if(s1.Equals(s1 di uno dei due )//il problema è prendere s1 dalle classi
    {
        ....;
    }
    le stringhe le ho riempite a caso, spero di essermi riuscito a spiegare

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    chiamiamo:
    - classe A la classe che contiene le stringhe (tutte private con metodi setter/getter) e i bottoni
    - classe B la classe con i JTextField.

    la classe B per ottenere le stringhe usa:
    a.getS1()
    a.getS2()

    altre classi che volessere modificare le stringhe usano:
    a.setS1("x")
    a.setS2("Y")

    la classe A stessa invece può direttamente accedere alle stringhe senza setter/getter:
    s1 = "z"
    s2 = "w"

    può andare bene?

  5. #5
    Originariamente inviato da c0der
    chiamiamo:
    - classe A la classe che contiene le stringhe (tutte private con metodi setter/getter) e i bottoni
    - classe B la classe con i JTextField.

    la classe B per ottenere le stringhe usa:
    a.getS1()
    a.getS2()

    altre classi che volessere modificare le stringhe usano:
    a.setS1("x")
    a.setS2("Y")

    la classe A stessa invece può direttamente accedere alle stringhe senza setter/getter:
    s1 = "z"
    s2 = "w"

    può andare bene?
    è esattamente quello che sto cercando di ottenere, ma ho bisogno che le stringhe siano definite nei bottoni, e inizializzate public e che poi in B assumano il valore definito nel bottone schiacciato, quindi i bottoni non possono essere contenuti in un'unica classe, se provo a fare bottone.gets1 mi da errore,
    tu lo intendi cos'ì?
    codice:
    public String s1="",s2="",s3="",s4="",s5="",s6="",s7="",s8="",s9="",s10="";
    private void BOTTONE_1ActionPerformed(java.awt.event.ActionEvent evt) {                                  
          s1="olio d'oliva";s2="misto di funghi";....
           
    }     
     private void BOTTONE_2ActionPerformed(java.awt.event.ActionEvent evt) {                                   
    
          s1=BOTTONE_1.gets1();
        }
    perchè così facendo mi da errore dicendomi che non posso fare gets1

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Visto che continui ad avere problemi (e continui a mettere gli attributi di classe public, invece di metterli PRIVATE e usare setter/getter) non puoi mettere anche la definizione di classe, almeno delle principali, con le funzioni al loro interno tipo:
    codice:
    class Alfa {
       public Alfa() {
       }
       public void ...
    }
    
    class Beta {
       public Beta() {
       }
       public void ...
    }
    così magari capisco meglio il problema.

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.