Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    [java] stringa deve diventare nome della variabile

    ho una hashtable che contiene NOME_VARIABILE e VALORE_LABEL_VARIABILE.

    Vorrei che la stringa restituita da (String)keyIterator.next(), che altro non sarà che una istanza di NOME_VARIABILE io la possa indicare come vera e propria varibile del programma, in modo da poter fare la seguente assegnazione:

    NOME_VARIBILE.label("VALORE_LABEL_VARIABILE");

    come fare?
    so che in php è possibile ma in java non so come fare...

  2. #2
    Non ho mai provato a fare ciò che chiedi ma spesso mi sono chiesta se era possibile.
    Se ci dici qual'è il tuo scopo, posso cercare una strada alternativa.

    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  3. #3
    beh, era per aggiornare tutte le label di molte variabili.
    ho la tupla (nomevariabile,labelinlingua) in una hashtable.
    vorrei che x ciascuna variabile settassi la label associata nella hashtable.
    mi consentirebbe di effettuare il cambio di lingua di oltre un centinaio di label senza digitarle tutte a manina nel listato.

    problema iniziale: http://forum.html.it/forum/showthrea...hreadid=719109

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    invece del nome della variabile non puoi memorizzare un istanza vera e propria della classe?
    Potresti usare anche la riflessione magari, per cercare tutti gli oggetti di un tipo presenti nel programma.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    ehm... non ho capito il tuo suggerimento.
    potresti farmi un esempio?

  6. #6
    o meglio. ho capito che passo l'oggetto lang (di tipo Language) ma sotto la classe Language, il ciclo sulla hashtable h devo farlo cmq... come?

  7. #7
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    da quello che ho capito tu hai una hashtable con chiave-valore che corrispondono a nome_istanza_oggetto-valore_da_dare.
    Invece tu potreti mettere istanza_oggetto-valore_da_dare?

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  8. #8
    e posso mettere istanzaoggetto come key???
    credo di no.... dovendo mettere una stringa credo... verifica meglio tu cosa vuole la hashtable.

  9. #9
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Tu crei un oggetto Hashtable di nome h per dire, poi chiami il metodo put, h.put(Object key, Object element).
    In key starà istanza_oggetto, in element la stringa.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  10. #10
    ho provato...
    peccato che h.put(oggetto, "valore")
    mi restituisce l'errore "cannot be resolved" sull'oggetto.

    Esempio
    codice:
    h.put(sendButton,"INVIA");
    la chiamata la faccio così:
    codice:
    sendButton = new JButton();
    sendButton.setText(lang.getLabel(sendButton));
               ^^^^^^^
    e la getLabel è così definita:
    codice:
    	public String getLabel(Object s) {
    		String translation = (String)h.get(s).getText();
                                                          ^^^^^^^
    		return translation;
    	}

    altro errore mi viene indicato su setText e getText (come evidenziato dai ^).

    qualcosa mi sfugge?


    ho anche provato
    codice:
    	public String getLabel(Object s) {
    		Object oggetto = new Object();
    		oggetto = (Object)h.get(s);
    		String translation = oggetto.getText();
                                                 ^^^^^^^
    		return translation;
    	}
    ma l'errore su getText permane.

    sospetto sia perchè il metodo getText non è di Object ma di JButton e altro...

    quindi non posso applicare quanto suggerito in quanto i miei oggetti sono eterogenei (bottoni, label, itemmenu, radioButton...) CHE FARE?

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.