Seuraava ongelma... Aloin AWT:llä rakenteleen jotain(ennen Swingillä) mutta nyt en saa piirtämistä oikein toimiin.
1. Kysymys: Miten saan tehtyä, että erillisessä classissa piirrettäisiin jokin kuva(jota muutellaan vähän väliä) ja sitten se kuva lähetetään aina pää ohjelmalle(Applet)? Olen yrittänyt tehdä kuvan createImage:lla ja sitten createGraphics:n avulla piirtää, mutta pääohjelmalle lähetetty kuva on aina null. Minkä tyyppinen class pitäisi edes tehdä? Olen yrittänyt Canvasia, mutta onko ongelma että kun sitä itse canvasia ei lisätä ikinä pääohjelmaan, niin java ei vaivaudu suorittamaan paint komentoo ollenkaan?
2. Kysymys: Miten on paras tehdä monen kuvan tuplapuskurointi. Tarkoituksena on että ohjelmassani on 5 kuvaa, joita muutellaan vähän väliä(mieluiten erillisissä class tiedostoissa). Itse ajattelin tehdä sillain että kuvia muokataan erillisissä classeissa, ja sitten nämä kuvat lähetetään pääohjelmalle, joka sitten piirtää yhteen off-screen kuvaan nämä kaikki 5 saatua kuvaa jonka off-screen kuva piirretään näytölle.
Onko parempia ehdotuksia? esim. jos piirtää erillisiin Canvaseihin ja sitten lisää ne pääohjelmaan, mutta pystyykö silloin tekeen tuplapuskurointia?
No, tein tuon nyt sillain että kaikki muuttuva piirto tapahtuu pääohjelmassa. Ja sain tuon eri classissa kuvan piirtämisen toimiin vaihtamalla Imagen BufferedImageksi.
Doublebuffering!
Tuplabuffaamisessa tuo BufferedImage menettää teho käytössä aika usein kiihdytyksensä, eli siintä tulee aika hiton hidas.
Minä käyttäisin ainoastaan VolatileImage kuvia tuplabuffaamiseen, ovat hieman monimutkaisempia, mutta, vain hieman ja toimivat sitten grafiikkapiirin muistissa.
applet.createVolatileImage ( xx , yy );
//.....
Kiitos..
Kiitos vinkistä. Mutta en taida tehdä jotain oikein, koska nyt kun vaihdoin kaikki piirrettävät kuvat VolatileImage:ksi, niin java käyttää noin 40% tehoa, kun bufferedimageilla vei 20% ja selvästi nykii hiukan nyt.
edit: löysin netistä jotain että tuo olisi ehkä Windows Vista ongelma(itsellä juurikin se). No, taidan palata niihin BufferedImageihin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.