Hei!
Olisi seuraavanlainen ongelma:
Ohjelmassa on yliluokka joka muodastaa GUIn ja tässä luokassa on JTextArea objekti johon alaluokan pitää päästä tulostamaan tekstiä. Jos periytän alaluokalle extends komennolla yliluokan niin alaluokkaa käyttäessä ohjelma aukaisee toisen ns. aloitus ikkunan. Olen yrittänyt muokata näkyvyys määreitä, mutta sillon joko Textareaan ei voi kirjoittaa tai pääikkuna aukeaa kuitenkin. Mikä avuksi?
-Ozmosis-
Mitä sinä oikein yrität tehdä sillä aliluokalla?
Jos nyt ymmärsin oikein, sinä perit yläluokasta jonkun aliluokan ja luot molemmista olion ja sitten ihmettelet, miksi sinulla on kaksi samanlaista ikkunaa. Totta kai aliluokka tekee saman asian kuin yläluokka, jos kerta olet perinyt sen siitä. Jos haluat tehdä aliluokalla jotain muuta kuin mitä yläluokka tekee, ei sinun kannata käyttää perintää.
Jos taas haluat luoda GUI-luokastasi hiukan muutetun version, voit käyttää perintää ja muuttaa perityssä luokassa halutut ominaisuudet. Sitten luot olion vain alaluokasta. Peritty luokka voi muuttaa yläluokan muuttujia, jotka ovat tyyppiä protected tai public.
Jos taas olet tekemässä asiaa oikein ja siltä ilmestyy jotain ylimääräisiä ikkunoita, kannattaa katsoa millä tavalla luot ne ikkunat. Oletko perinyt yläluokan Frame tai vastaavasta luokasta (aika normaali käytäntö) vai luotko yläluokan sisällä jonkin ikkunan, jonka käynnistät (Toinen tapa). Jälkimmäisessä tavassa on mahdollista, että luot ikkunan sekä yläluokan koodissa, että alaluokassa jolloin sinulle syntyy kaksi ikkunaa.
Voi olla, että ymmärsin ongelmasi täysin väärin.
Jos perittävänä olevassa luokassa on kirjoitettu ikkunan avauskäsky, niin ikkuna aukeea näkyvyydestä huolimatta, mutta sen voi silloin välittömästi sulkeakkin uudessa luokassa, joka perii eli helpoimmalla vissiin selviää, jos ylikirjoitat sen metodin, jossa ikkuna avataan ja ensin superia käyttäen suoritat periytyvän koodin ja uudessa heti suljet sen, jos se ei saa aueta kerran.
Mitä tarkalleen ottaen olet tekemässä? Jos vain mahdollista niin pistä koodia näkyviin. Koska tulleepi mieleen parikin mahdollista ongelmaa... Yksi vaihtoehto on et fiba on luokan/kien creatorissa/eissa. Ja sekin tietysti et ollaan lähdetty ratkaisemaan ongelmaa väärällä tavalla.
Eniten epäilisin että käytetään periytymistä vaikka luokkien ei pitäisi olla mitään sukua toisilleen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.