yritän tässä juuri opetella java-ohjelmoinnin alkeita, mutta vaikuttaa nuo eri layoutit aika hankalilta tajuta. mistähän löytyisi apua käyttöliittymän suunnitteluun?
jbuilderissa ainoa loogisesti toimiva on se xy-layout, mutta sillä tehty sovellus ei sitten taas suostu toimimaan kun komentoriviltä yritän ajaa java -jar sovellus.jar.
jbuilderissa ainoa loogisesti toimiva on se xy-layout, mutta sillä tehty sovellus ei sitten taas suostu toimimaan kun komentoriviltä yritän ajaa java -jar sovellus.jar.
Vastaukset 5
Vanhimmat
http://java.sun.com/docs/books/tutorial/uiswing/layout/index.html
Itse yleensä käytän BorderLayoutia monessa tilanteessa. Huomaa, että voit helposti tehdä erilaisia yhdistelmiä käyttämällä layoutia toisen layoutin sisällä.
JPanel alapaneeli = new JPanel(new BorderLayout());
alapaneeli.add(vasenalas, BorderLayout.WEST);
alapaneeli.add(oikeaalas, BorderLayout.EAST);
frame.setLayout(new BorderLayout());
frame.add(alapaneeli, BorderLayout.SOUTH);
pitää tosiaan opetella noita vaikka vähän sekavalta vaikuttavatkin.
löysin jbuilderista layout-valinnan null, jolla painikkeet ja muut sai piirrettyä ihan vapaasti näytölle. ja linux koneessa ainakin toimi tuolla tehty testi-sovellus. pitänee kokeilla vielä muissakin koneissa..
Jos olet aloittelemassa ohjelmointia niin kannattanee paneutua aluksi johonkin ihan muuhun kuin graafisen käyttöliittymän tekemiseen. JBuilderilla saat tosiaan tehtyä jonkin näytölle poksahtavan laatikon jossa on nappuloita, mutta ohjelman taustalla oleva rakenne on se joka kannattaa hallita. Sen perinteisen "Hello world"-tekstiohjelman tekeminen on ehkä tylsää, mutta kannattaa kuitenkin pidemmän päälle.
Builderissa oleva XY-layout tarvitsee layoutin käyttämät pakkaukset mukaan jar-pakettiin jonka teet. Null-layouttia käyttäessä saa näppylät laitettua Frameen koordinaatteina, mutta koitappa venyttää tai pienentää laatikkoa, näyttää vähän nihkeältä. :) (ellet sitten määritä että laatikon kokoa ei voi muuttaa)
GridBagLayout taitaa olla monipuolisin noista vakio layoutmanagereista, vaikkakin aluksi aika hankala. Toisaalta kannattaa ehkä harkita myös graafisten käyttöliittymien tekemisessä jonkin muun kielen käyttämistä.
Yhtään monimutkaisempi näyttö pitää koodata GridBgLayoutilla, muut on lähinnä spesiaali tapuksia.
GridBagLayout