Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Komponenttien tyylittely

kpzpt [19.07.2011 00:45:12]

#

Hei,

Minulla on tämä minun Java pelisivustoni rakentumassa yhä -

Sivusto - http://temp4322.dy.fi
Applet AWT - http://temp4322.dy.fi/AsiakasOhjelma_AWT.html

Sivusto on edistynyt mukavasti ja olen aika tyytyväinen tähän alkuun mitä minun sivustoni nyt on sitten saamassa, ongelmiakin toki tuntuu vielä olevan, mutta, enköhän niistä selviä.

1) ongelmana on komponentit, nämä ovat erillaisia kaikissa? käyttöjärjestelmissä, ainakin Lin ja Win komponentit ovat erillaisia, en tosin tiedä Macista, nyt tahtoisin ratkoa tämän pulman.

Kysymys on kuinka olisi parasta rakentaa kokonaiset komponentti luokat sivustoni tarpeisiin.

1) Button
2) TextArea - Tämän ei tarvitse olla editoitava.
3) TextField - Tämä tulee voida kirjoittaa.
4) Choice
5) List
6) Slider
7) Radio button
8) Check button
9) Mahdollisia muita pienempiä toimintoja ruudulle.

Tuo ensimmäinen button on varmaankin se helpoin, ajattelin rakentaa constructorissa kolme imagea buttonin käyttöön, yksi perustila, yksi kun hiiri on yllä, ja vielä yksi kun buttonia sitten painetaan, buttonin painaminen sitten asettaa lipun jonka voi lukea myöhemmin.

Entä nämä muut, kuinka niitä olisi parasta rakentaa, mitä mekaniikkaa niitten olisi hyvä sisältää, minä kun olen yhä ilman koulutusta taikka todellista tieto taitoa tämän Java ohjelmoinnin kanssa, olen siis sotalautapeli harrastelija ja olen rakentamassa peleilleni sivustoa.

Kuinka kaltaisia luokista olisi hyvä rakentaa, ja mitä mekaniikkaa niitten olisi hyvä sisältää, jotta ainakin nuo ylläolevat komponentit sitten olisivat toiminnallisena ja myöskin toimisivat samoin kaikissa käyttöjärjestelmissä mitä Java tukee, Win Mac Lin.

---

Edit. Tuo perus AWT Choice ei toiminut Linuxissa, kun hardware opengl tuki on kytkettynä, myöskin Volatileimaget piirtyvät vääriin komponentteihin NVIDIA 270.xx.xx ajureitten kanssa, kun sama hardware opengl kiihdytys on kytkettynä.
Tämä rivi ei toimi kunnolla "-Dsun.java2d.opengl=True" NVIDIA 270.xx.xx ja Linux yhdistelmällä, sama rivi tuottaa ongelmia myös useissa Windows koneissakin, mutta ilman kyseistä riviä ei ole mahdollista asettaa Linux ja Macintosh tukea peleilleni.

The Alchemist [19.07.2011 09:05:33]

#

Graffoja ei voi konstruktoreissa valmiiksi generoida vaan ne täytyy piirtää reaaliajassa. Widgettien koko voi muuttua miten sattuu.

kpzpt [19.07.2011 17:32:05]

#

TextField ja TextArea,

Nämä taitaa olla vaikeinta näistä kysytyistä, kuinka noitten pinta olisi parasta hallita, olisiko paree jos laittaisin suoran piirron tuplabuffeerattuun canvakseen vaiko sitten pitäisin tekstejä volatileimagessa ?

Taidan itse kallistua tuohon volatileimageen, mutta, se sitten voi välkähtää jos menettää pintansa kesken kaiken ?

Kuinka olisi paree rakentaa tuo editoiva TextField ?

--

Komponenttien koko voi muuttua, joo, olet oikeassa, mutta, vaikka ne tuossa konstruktorissa rakentaisi, ei se tartte tarkoittaa että tuo rakennus koodi on ainoastaan tuossa luokan initti vaiheessa, siellä konstruktorissa voi olla vaikka kutsu komponentti imagen luonti metodiin, jota sitten kutsutaan aina uudestaan kun näytön koko muuttuu, jos näytön kokoa muutetaan, myös on mahdollista että komponentin imagen koko ei muutu vaikka sen piirto koordinaatit muuttuisivatkin, kuva on tietenkin linear muodossa, mutta, kyllä ole oikeassa on parempi rakentaa kuva uudestaan uuden näytön kokoon, jotta button image ei blurinen.

kpzpt [21.07.2011 10:23:04]

#

Komponentit ja niitten sijainnit Appletissani,

Hmmh, nyt täytyy sanoa että olen hieman jämähtänyt näihin komponentteihin ja niitten säätelyihin ruudulle Applettiini, ongelmana on tämä että komponentit ovat eri näköisiä kaikissa käyttöjärjestelmissä ja kaikki komponentit eivät toimi Linuxissa, myöskin ongelmana on se että Applettini ruutu on skaalaava, eli näitä pelilautoja voi periaatteessa sitten julkaisussa olla vaikka kaksi taikka kolme rinnakkain taikka neljä neliössä taikka jotain noin, en vielä päättänyt, ja tämä komponenttien käyttäminen tälläisessä tilanteessa on minun Java kokemuksella aika miettimistä vaativaa.

Kuinkahan minun tulisi käsittää esim. 15" lappärit taikka muut pienikokoiset näytöt, esim. marsalkkashakki on aika leveä ja jos komponentit olisivat vielä reunassa, niin joutuisin pienentämään laudan kokoa myös pystysuunnassa,

Koen että olisi varmaankin paree jos rakentaisin jonkinlaisen oman komponentti viidakon jota sitten käyttäisin upotettuna tuolla 3d avaruudessa jossa nuo laudatkin leijuvat.

Otan vinkkejä vastaan ..

Hennkka [21.07.2011 11:06:40]

#

Chatin voi ainakin toteuttaa siten, että viestit näkyvät vasemmassa alakulmassa taustan päällä ja kun käyttäjä alkaa kirjoittaa, ilmestyy tekstinsyöttölaatikko.

Itse toteuttaisin ensin pohjaluokan, joka sisältää komponentin sijainnin, koon ja eventtien hallinnan. Kun käyttäjä esim. klikkaa hiirellä, pohjaluokka tarkistaa, onko klikattu napin päällä ja heittää sitten eventin.

kpzpt [21.07.2011 22:29:01]

#

Komponenteista vielä,

Tuo chat on minullakin jo testeissä ollut tuossa vasemmassa reunassa, minulla on ollut tuo chat alue noin 300px näytön vasemmasta reunasta ja alkaa ei ihan alareunasta ja teksti sitten kohoaa pikku hiljaa kirjoitettaessa lisää kohti yläreunaa, minulla on tarkoitus vasempaan alareunaan tarkoitus asettaa pieni vaalea laatikko jota klikkaamalla siihen voi sitten kirjoittaa, kaikkiin peleihin ei voi jättää koko ajan aktiivista textfield laatikkoa koska joissakin peleissä on tarkoitus ohjata näppäimistöstäkin.

Testasin myös tuollaista pientä textareaa, ilman että siihen voi kirjoittaa, niin, se oli ihan hyvä ja nopea vaikka en käyttänytkään VolatileImagea tuplabufferina, täytyy vaan pitää nämä texti alueet aika rajoitetun koon mukaan, jotta ei sitten fps rupea tippumaan, minun ruudunpäivitykseni on hieman kiusallisella tavalla rakennettu, koska se on aika GL tyyliin, eli koko näyttöä piirretään joka frame, ja siellä sitten nämä komponentit joukossa.

otan vielä vinkkejä vastaan, samalla kun rakentelen näitä ensi testejä komponenttien kanssa.

---

Vielä tahtoisin kysyä tuosta luokasta joka sitten käsittelee näitä omia komponenttejani, eli kuinka nuo eventit olisi parasta rakentaa omiin komponentteihin, eli kuinka asetan listenerit omaan komponentti luokkaan, tässä taas tämä oma Java kokemattomuus paistaa oikein kunnolla.

Vastaus

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

Tietoa sivustosta