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

    Java ereditarieta

    Scusate ho un piccolo problema, praticamente ho una classe A che contiene un metodo che riceve una Stringa e mi fà un APPEND in una JTextArea. Questa classe A estende una classe B che assua volta B estende un altra classe C. Il problema e questo; se io dalla classe C richiamo il metodo setArea()"IL METODO CHE Fà L'APPEND" io non visualizzo niente. Penso che la classe C non vede i metodi della superClasse A. Qualcuno sà dirmi come posso fare? Grazie.
    HARDCORE WILL NEVER DIE!!!http://www.musicahardcore.it
    http://www.bedandgo.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Puoi postare un po di codice?
    Cosi è difficile capire dove può essere il problema

  3. #3
    CLASSE A
    public class Scanner extends JFrame{

    JTextArea area=new JTextArea(5,10");
    }
    public void setArea(String a){
    area.append(a);
    }
    ------------------------------

    Classe b:

    public class pippo extends Scanner{
    super();

    }

    Classe c:
    class Threadscannerip extends pippo{
    setArea("ciao");
    }
    -------------------------
    Se nella classe C chiamo il metodo della classe A (SUPERCLASSE) non visualizzo niente sapete dirmi come risolvere questo problema? :master:
    HARDCORE WILL NEVER DIE!!!http://www.musicahardcore.it
    http://www.bedandgo.it

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Credo che avere un po' più di codice aiuterebbe... così com'è non si capisce dov'è il problema.
    Non visualizzi niente in che senso? Se non visualizzi la finestra è perchè manca un setVisible() nella classe A, se non visualizzi la JTextArea è perchè probabilmente non l'hai aggiunta alla finestra sempre nella classe A...


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    In effetti, intanto capiamo una cosa: se richiami il metodo direttamente dalla classe Scanner, questo funziona?

  6. #6

    Allora

    Purtroppo non posso postare il codice delle 3 classi perche sarebbe molto lungo. Come vi ho detto nella classe "A" ho una JTextArea ed un metodo con il nome ("SetName") con il quale gli passo una Stringa e fà l'append nella JTextArea. Spero che fin qui abbiate capito.

    Questa classe ("A") estende una classe ("B") e b estende la classe ("c") ---->Es.. A--->B--->C. Adesso se io richiamo dalla classe ("C") il metodo ("setName()") che si trova nella classe ("A" classe padre) non mi fà l'append nella JTextArea. Sperò che di essermi spiegato bene, e vi ringrazio per l'aiuto.
    HARDCORE WILL NEVER DIE!!!http://www.musicahardcore.it
    http://www.bedandgo.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Questo l'avevo capito.
    Il discorso è che non fai errori concettuali: se A possiede un metodo e A->B->C, C deve vedere quel metodo punto e basta. Per cui molto probabilmente il tuo problema non dipende direttamente dall'ereditarietà, ma avrai fatto qualche errore altrove che ti impedisce di usare il metodo.

    Ad esempio, mi è venuto in mente, non è che per caso in B o in C hai ridefinito quel metodo? Perchè se lo hai fatto e vuoi continuare a ereditare il metodo padre devi anteporre al codice nuovo la chiamata super.setName()

  8. #8

    ok

    Infatti dalle mie conoscenze sapevo che i metodi della classe padre, si estendono anche nelle sottoclassi. Forse l'unico passaggio diverso e questo, che nella classe ("B") dove c'è il Main ho applicato il polimorfismo in questo senso....

    queste sono le classi: A--->B----->C

    B: CONTIENE IL MAIN

    public static void main (String[]argv){
    classe A c = new classe b();
    a.show();
    }

    può dipendere da questo?
    HARDCORE WILL NEVER DIE!!!http://www.musicahardcore.it
    http://www.bedandgo.it

  9. #9

    Risolto

    Risolto nella classe C ho fatto un metodo che riceve una Stringa e restituisce un Stringa dalla classe B ricavo la Stringa del metodo della classe C. A questo punto nella classe B faccio super.setArea(variabile Stringa) gli passo la Stringa contenente la frase del metodo C e funzione . Grazie lo stesso per l'aiuto
    HARDCORE WILL NEVER DIE!!!http://www.musicahardcore.it
    http://www.bedandgo.it

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.