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

    [java] passaggio di parametri tra oggetti

    ho una classe mainFrame in cui creo un frame principale, con i vari panel e i vari button.

    ho poi una classe language che si occupa di cambiare le etichette ai vari elementi del frame principale.

    in quest'ultima ho definito il metodo updateLanguage che dovrebbe andare a cambiare proprio l'etichetta, avente questa forma:
    codice:
    public void updateLanguage(JPanel frame, int lang) {
    come faccio a selezionare i vari button visto che l'assegnazione
    codice:
    frame.exitButton.setText(getLabel("exitButton"));
    mi restituisce errore dal momento che non ho modo di risalire a exitButton?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Forse ho capito male, ma credo che tu debba cambiare i valori di proprietà di alcuni oggetti di una classe, da una classe diversa da quella che li contiene, giusto?
    In questo caso, la via più breve è quella di definire una classe a parte per l'interfaccia in modo che essa preveda dei metodi appositi per la modifica dei suoi oggetti e passare questo oggetto al metodo che ti interessa effettui le modifiche:
    codice:
    // La classe che implementa l'interfaccia: estende JFrame
    public class Finestra extends JFrame {
       ...  // Pulsanti, labels e quant'altro
    
       // metodi pubblici, fra cui quello che mi permette di modificare
       // una label
       ...
       public void modificaLabel(String nuovoTesto) {
          label.setText(nuovoTesto);
       }
    }
    
    // La classe che effettua le modifiche
    pubilc class Modificatrice {
       ...
       public void updateLanguage(Finestra f, int lang) {
          ...  // faccio le elaborazioni
          f.modificaLabel( nuovoTesto );  // applico il nuovo testo
       }
    }
    Questa è la struttura a grandi linee di come va gestita la cosa. Si possono usare anche altri modi, ma questo mi sembra nettamente il più semplice, nettamente coerente con la filosofia Object Oriented.

    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

  3. #3
    ti ringrazio. provo subito.

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.