Ohjelmani koostuu monista pienistä ikkunoista. Jotta ne pysyisivät paremmin kokonaisuutena. Haluaisin lisätä myös taustaikkunan, joka on pysyy aina taustalla(duh) ja oletuksena kokoruututilassa. Myös kun taustaikkunan pienentää, niin muutkinohjelmat katoaisivat työkaluriviin.
Miten tälläisen voisi toteuttaa?
Olisiko tästä apua?
http://java.sun.com/docs/books/tutorial/uiswing/
Kiitän. Tuo käy mainiosti.
Tuotanoin. Tässä on nyt yksi ongelma. Kuten yllä mainitsin. Ohjelma koostuu monesta pienemmänstä ikkunasta. Yksi näistä ikkunoista toimii valikkona, josta avataan muut ikkunat. Tämän valikkoikkunan liittäminen taustapaneeliin, (joka on siis JDesktopPane) käy ongelmitta, mutta kun yritän liittä näitä muita ikkunoita tähän taustapaneeliin, joita valikkoikkuna kutsuu. Niin menee sormi suuhun.
Miten tässä olisi tarkoitus päästä käsiksi toisen luokan JDesktopPaneen? Kun tuo tykkää herjata, että taustapaneeli has private access in TaustaIkkuna. Joka ei sinäänsä ole kovin ihmeellistä. Onhan se kuitenkin private.
EDIT. Pistetään nyt vielä vähän koodia perään. Niin on vähän selvempää:
Tässä siis taustaIkkunan metodi joka avaa Valikon.
public void avaaValikko() { Valikko uusiValikko = new Valikko(); uusiValikko.setVisible(true); taustapaneeli.add(uusiValikko); try { uusiValikko.setSelected(true); } catch(java.beans.PropertyVetoException e) {} }
Saman henkisiä metodeja pitäisi löytyä myös Valikosta. Mutta en voi(osaa) liittää niitä taustapaneeliin.
Palataanpa vielä tähän. Eli ongelma on vähän syvällisempi kuin JDesktopPanen muuttaminen publikiksi ja taustaIkkunan ilmentymän luominen. Sillä kun yritän lisätä toisessa luokassa kutsuttua ikkunaa TaustaIkkuna-luokan taustapaneeliin(JDesktopPane). Niin kun ohjelmaa yrittää käynnistää, niin pamahtaa näyttöön monen kymmenen(sadan?) rivin virheilmoitus josta ei ota selkoa. Eli miten tämä olisi tarkoitus hoitaa?
private void etsiHenkilo() { EHenkilo ehenkiloIkkuna = new EHenkilo(); ehenkiloIkkuna.setVisible(true); tausta.taustapaneeli.add(ehenkiloIkkuna); try { ehenkiloIkkuna.setSelected(true); } catch(java.beans.PropertyVetoException e) {} }
Näin olen tätä yrittänyt ratkaista. Tämä siis Valikko-luokan metodi, jossa on ensin luotu ilmentymä tausta TaustaIkkunasta, ja sitten yritetään lisätä taustapaneeliin tämä uusi ikkuna.
Aihe on jo aika vanha, joten et voi enää vastata siihen.