Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java : Canvas ja Applet ?

kpzpt [14.01.2011 18:44:57]

#

Canvas !

Asetanko AWT Appletin päälle Canvaksen jollekka piirrän vaiko käytänkö pelkkää AWT Applettia.
Appletin ja Canvaksen piirto ominaisuudet ovat tuntematta, onko Canvas nopeampi, vai onko Canvas tarkoitettu Framea varten, vaiko mitä ?

Miksi on erikseen Canvas, Applet, Panel ja vielä JFramekin jossa Graphics2D ?
Aion käyttää Peli applettia, ilman Canvasta taikka Panelia, onko minulla tehon laskuja ?

------

Metabolix [14.01.2011 18:52:18]

#

Et selvästikään ole perehtynyt Javan käyttöliittymäohjelmointiin, joten kannattaa ehkä perehtyä.

J-alkuiset ovat uudemman Swing-kirjaston asioita, ja monille on vanhempi AWT-vastine. Frame tai JFrame on irrallinen ikkuna, Applet tai JApplet on appletti, Panel tai JPanel on paneeli ja niin edelleen. Swing on uudempi ja siten monessa suhteessa käytännöllisempi kuin AWT.

Useimmat komponentit ovat tiettyyn tarkoitukseen (Applet eli appletti, Frame eli ikkuna, Button eli nappi, Panel eli paneeli eli muita komponentteja sisältävä alue jne.). Näin ajatellen Canvas on nimenomaan piirtämistä varten, joten käytä sitä.

kpzpt [14.01.2011 18:56:13]

#

Öh!

Minun pointtini oli varmaankin, ihmettely siihen miksi on niin monta komponenttia joissa on samat ominaisuudet ?
Ovat siis vain eritahtiin julkaistuja parannuksia aikaisempiin Java luokkiin ?
Olisi kovin selkeämpää jos olisi vain Frame ja Applet selain pinta, mutta, näin kovin montaa ?

Eli, JApplet on nopeampi mitä Applet ja JApplettiin ei kannata nopeuden takia laittaa enää Canvasta ?

Minä en täysin hyväksy tuota Canvaksen käyttöä parempana, minulla on tehon laskuja Canvaksen kera, mutta ihmettelen vielä täällä forumilla ?

Myöskin J alkuiset sisältävät enemmän toimintoja, jotenka liekö mahdollista että JApplet olisikin hieman hitaampi ?

------

Metabolix [14.01.2011 19:02:09]

#

Eivät ne ole mitään "samanlaisia pintoja". Niillä on samoja ominaisuuksia, koska niillä voi tehdä monia samoja asioita, mutta niissä on myös merkittäviä eroja kuten se, että appletit toimivat selaimessa, framet ovat irrallisia ikkunoita, paneelit ovat edellä mainittujen sisällä ja kanvaasit ovat ihan vain piirtämistä varten.

Kaikkeen piirtämiseen kannattaa laittaa Canvas. Oikeastaan sinun kannattaisi ehkä jopa periyttää jokaisen pelin grafiikkaluokka siitä Canvas-luokasta. Canvas-luokasta ei ole J-versiota, koska Canvas on jo omassa lajissaan erinomainen eivätkä Swingin uudistukset koske sitä millään tavalla.

kpzpt [14.01.2011 19:04:04]

#

Öh!

Entä sitten tämä muistin kulutus, jos laitan JAppletin päälle 1920x1200 Canvaksen, JApplettini tukee FullHD asti ?

Oisko niin että, JAppletti vapauttaa muistinsa kun Canvas on päällä piirrettynä ?

Minulla on myös ollut vaikeuksia pitää Appletin lopettaminen vakaana, kun käytän Canvasta ja BufferStrategyä, Ubuntu jämähtelee selaimen sammuessa ?

----

Metabolix [14.01.2011 19:10:36]

#

Canvas-komponentin lisääminen ei vaikuta olennaisesti muistinkulutukseen.

Sinun kohdallasi valinta Appletin ja JAppletin välillä on merkityksetön, koska aiot ilmeisesti hoitaa kaiken piirtämisen itse. Voit siis käyttää ihan kumpaa tahansa.

kpzpt [14.01.2011 19:17:28]

#

Vielä yksi Öh!

Canvas ei taida olla kiihdytetty perus ominaisuuksiltaansa, vaan vaatii bufferstrategyn, jossa myös mahdollisuus tuplabufferiin, tämä siis minun Ubuntun GF5200FX kera.

Onko kiihdytyksen puutteessa kyse Canvaksesta tai Linuxista vaiko vuoden 2003 näytönohjaimestani ?

Applet ja JApplet ovat kiihdytettyjä VolatileImageille ja BufferedImageille minun koneessani, Canvas ei ilman bufferstrategyä, kuinka erillaisia ovat eri käyttöjärjestelmät ja eri näytönohjaimet ajureineen asiassa ?

Minulla on ollut vaikeuksia BufferStrategyn kanssa, koko tietokone jämähtää kun selaimen jossa (J)Appletti jossa Canvas jossa BS sammuttaa kesken ajon ? En ole huomannut jämähtelyä kun käytän pelkkää (J)Applettia ja koko (J)Appletin kokoista Volatileimagea tuplabufferina.

En kai periaatteessa kuitenkaan riko mitään kultaista Java sääntöä jos jatkan pelkän (J)Appletin ja samankokoisen Volatileimagen kanssa ?

Myöskään helsingin kirjasto tietokoneet eivät lainkaan käynnisty bufferstrategyn kera, en sitten tiedä mitenkä yleistä bs toimimattomuus toimisto koneissa ?

------

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta