Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - come modificare un oggetto JFrame da un'altro?
Forum - Java - come modificare un oggetto JFrame da un'altro?

Avatar
bogos (Normal User)
Newbie


Messaggi: 6
Iscritto: 23/05/2011

Segnala al moderatore
Postato alle 13:20
Lunedì, 30/05/2011
Ciao ragazzi, sto sviluppando un software che svolge alcuni calcoli economici.
il programma è formato da tre classi una classe Main, e altre due che ho chiamato
CMQ, JMarkUp. Inizialmente viene visualizzato il frame della classe CMQ che permette il calcolo del costo medio unitario (è fino a qui non ho problemi)..dopo di che il programma visualizza un pulsante che se premuto apre il frame della classe JMarkUp che dovrebbe aggiungere il mark up e poi settare il testo della Jlabel in modo da visualizzare il resultato finale. ma come faccio a far interagire il primo oggetto con il secondo?? ho provato a rendere CMQ padre di JMarkUp e poi usare il metodo super.label4.setText("prezzo finale...."); solo che quando lo faccio  viene creato un'altro oggetto CMQ con il nuovo testo settato mentre io voglio che sia cambiato il primo senza che venga creato nessun nuovo oggetto.
grazie in anticipo.


bogos ha allegato un file: my_frame.JPG (62614 bytes)
Clicca qui per guardare l'immagine
PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 14:53
Martedì, 31/05/2011
Poi implementare la classe JMarkup nello stesso file di CMQ es:

class CMQ extends JFrame{

   //costruttore
  //prop e metodi vari
  //var di classein particolare
  public JLabel risultatofinale = new JLabel();

   class JMarkUp extends JFrame{

   //costruttore
  //prop e metodi vari
     private JTextField txt = new JTextField();
     private JButton conferma = new JButton("conferma");
    
    all'evento click del pulsante conferma Markup{

        String mark = txt.getText();

        risultatofinale.setText(mark);     // N.B.

        this.setVisible(true);//nascondo il frame
    }    

   }

}//fine class CMQ



PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 15:03
Martedì, 31/05/2011
Potresti anche implementare un metodo static nella classe CMQ del tipo:

Codice sorgente - presumibilmente Java

  1. //.....................................
  2.   private static JLabel Label = new JLabel();
  3.  //.......................................
  4.  //......................................
  5.  
  6.    public static void setLabelDIMarkup(String testo){
  7.        
  8.        label.setText(testo);
  9.    }



e nella classe Markup nell'evento click del pulsante di conferma

Codice sorgente - presumibilmente Plain Text

  1. CMQ.setLabelDIMarkup(txt.getText());



Quando si implementa un metodo statico,in una classe,non serve istanziare un oggetto di quella classe per usufruire del metodo in altre parti del programma

Grazie Bonny la prima soluzione l'avevo evitata per non avere un codice sorgente troppo lungo... - bogos - 03/06/11 08:44
PM