Tuloksellinen Javaohjelmointi Lisosa GUI Jukka Harju Jukka Juslin

  • Slides: 19
Download presentation
Tuloksellinen Java-ohjelmointi Lisäosa: GUI © Jukka Harju, Jukka Juslin 1

Tuloksellinen Java-ohjelmointi Lisäosa: GUI © Jukka Harju, Jukka Juslin 1

Nämä kalvot on lisensoitu Creative Commons Attribution-Share. Alike 1. 0 -lisenssillä. Lisäys edelliseen lisenssiin:

Nämä kalvot on lisensoitu Creative Commons Attribution-Share. Alike 1. 0 -lisenssillä. Lisäys edelliseen lisenssiin: Kalvojen muokkaaminen on sallittu vain opettajille, joiden kursseilla käytetään kurssikirjana Tuloksellinen Javaohjelmointi -kirjaa. © Jukka Harju, Jukka Juslin 2

GUI • • • Pohjatiedot Javan työasema GUI-tekniikat Swing GUI Layoutit SWT © Jukka

GUI • • • Pohjatiedot Javan työasema GUI-tekniikat Swing GUI Layoutit SWT © Jukka Harju, Jukka Juslin 3

Pohjatiedot • Pohjatietona tämän päivän asialle oletetaan Java AWT: n tuntemus – Tapahtumankäsittelijät, sisäluokat

Pohjatiedot • Pohjatietona tämän päivän asialle oletetaan Java AWT: n tuntemus – Tapahtumankäsittelijät, sisäluokat – Käyttöliittymäelementtien asemointi Flow. Layoutin ja nulllayotin avulla – Pop-up ikkuna JOption. Pane: n avulla – Luokan periyttäminen Frame-luokasta © Jukka Harju, Jukka Juslin 4

Javan työasema GUI-tekniikat • • • Java on valitettavasti varsinkin Suomessa tehty varsin marginaalisesti

Javan työasema GUI-tekniikat • • • Java on valitettavasti varsinkin Suomessa tehty varsin marginaalisesti työasema GUI-käyttöliittymiä Syynä on esimerkiksi varsinkin ennen SWT-tekniikoita Javan hitaus käyttöliittymänä ja mahdottomuus tuottaa natiiviksi käännettyä nopeaa koodia, jota voisi tehdä visual editorilla Vallitseva väline työasema GUI: n tekemiseen Windows järjestelmiin on. NET Java on parhaimmillaan isoissa www-pohjaisissa Java EE järjestelmissä Käyttöliittymän tekemisen ja tapahtumaohjatun käyttöliittymän tekemiseen Java on kuitenkin pedagogisesti hyvä esimerkiksi selkeän API: nsa vuoksi – tästä on myöhemmin todella helppoa siirtyä esim. C# kieleen, jos kiinnostusta on © Jukka Harju, Jukka Juslin 5

Swing GUI • Swing on nimi Java AWT: stä laajennetulle käyttöliittymäkirjastolle • Seuraavalla kalvolla

Swing GUI • Swing on nimi Java AWT: stä laajennetulle käyttöliittymäkirjastolle • Seuraavalla kalvolla esitämme todennäköisesti yksinkertaisimman mahdollisen Java Swing sovelluksen © Jukka Harju, Jukka Juslin 6

Swing GUI Periytyy JFrame luokasta Kaikki lisättävä Content. Panen kautta Ikkunan sulkeminen Swingissä hoidetaan

Swing GUI Periytyy JFrame luokasta Kaikki lisättävä Content. Panen kautta Ikkunan sulkeminen Swingissä hoidetaan näin © Jukka Harju, Jukka Juslin 7

Swing GUI • Edellisestä saadaan seuraavanlainen ikkuna: © Jukka Harju, Jukka Juslin 8

Swing GUI • Edellisestä saadaan seuraavanlainen ikkuna: © Jukka Harju, Jukka Juslin 8

Swing GUI • Huomattavaa on, että tuttuihin elementteihin Button, Label, Text. Field on Swingissä

Swing GUI • Huomattavaa on, että tuttuihin elementteihin Button, Label, Text. Field on Swingissä lisättävä etuliite ”J” • Elementit on kehitetty AWT: n pohjalta, mutta Swing -toteutusten (tehty Javalla) eteen on liitetty Jkirjain • Swing luokat saadaan käyttöön importoimalla javax. swing. *; © Jukka Harju, Jukka Juslin 9

Sisältöpaneeli Content. Pane • Lisämutkana verrattuna AWT: hen on sisältöpaneeli Content. Pane • Content.

Sisältöpaneeli Content. Pane • Lisämutkana verrattuna AWT: hen on sisältöpaneeli Content. Pane • Content. Pane saadaan JFramesta periytetystä luokasta kiinni get. Content. Pane metodin avulla • Content. Paneen saatetaan lisätä sisälläisia paneleita kuvaamaan käyttöliittymän eri osioita (JPanelluokka) © Jukka Harju, Jukka Juslin 10

Swing GUI luokkien piirtäminen graafisesti • • Eclipseen on saatavissa lisäosa, jolloin graafiset ikkunat

Swing GUI luokkien piirtäminen graafisesti • • Eclipseen on saatavissa lisäosa, jolloin graafiset ikkunat ovat maalattavissa (kuten MS Visual Studiossa) Lisäosan nimi on Visual Editor Pedagogisesti ei ole järkevää aloittaa Visual Editorista, sillä tällöin ymmärrys tapahtumankäsittelijöiden merkityksestä hämärtyy ja koodi on jokatapauksessa täysin ymmärrettävä – myöhemmin toki Visual Editor voi olla hyvä esimerkiksi null layoutilla käytettynä Visual Editor on ladattavissa esimerkiksi osoitteesta: – http: //myy. helia. fi/~jusju/ict 02 d/ICT 02 DOpiskelijan. CD/85_eclipse_plugins/V E-runtime-1. 1. 0. 1. zip • • Paketti on purettava eclipsen plugins hakemiston alle oikein (zip-sisältää mm. plugins hakemiston) Linkin antama ohjelmisto on valitettavasti vanha versio, joka toimii vain Eclipse 3. 1: n kanssa – etsi vastaavasta tiedostosta uudempi versio jos haluat kokeilla Eclipse 3. 2: n kanssa © Jukka Harju, Jukka Juslin 11

Layoutit • Swingissä on käytettävissä useita eri Layouteja • Voit tutustua niihin API: sta

Layoutit • Swingissä on käytettävissä useita eri Layouteja • Voit tutustua niihin API: sta • Layoutien käyttö on monesti haastavaa (muiden kuin Flow. Layoutin) sillä on vaikea sanoa mihin elementti loppujenlopuksi asettuu • Asemointi on luonnollisesti tietysti tärkeää ja yksi hyvä Layout siihen on Grid. Bag. Layout, kyseinen Layout on vain valitettavan vaikea käsin koodata • Toinen vaihtoehto olisi null-layout, mutta sekin vaatii tiedon kohdenäytön resoluutiosta (mieluiten) ja Visual Editorin • Harjoituksissa käytetään Flow. Layoutia © Jukka Harju, Jukka Juslin 12

SWT • SWT on Javan uusin (ei vakio) käyttöliittymämekanismi • SWT on nopea, esimerkiksi

SWT • SWT on Javan uusin (ei vakio) käyttöliittymämekanismi • SWT on nopea, esimerkiksi Eclipse on tehty SWT: llä • SWT: stä on kullekin käyttöjärjestelmälle oma jakelupakettinsa, joten se ei ole alustariippumaton kuten Java-sovellukset yleensä teoriassa • Seuraavassa esimerkki SWT-sovelluksesta © Jukka Harju, Jukka Juslin 13

SWT • Importit ja main-metodi on esitetty omalla kalvollaan, vaadittu create. SShell metodi taas

SWT • Importit ja main-metodi on esitetty omalla kalvollaan, vaadittu create. SShell metodi taas omalla kalvollaan: © Jukka Harju, Jukka Juslin 14

SWT SWT: n vaatimat importit © Jukka Harju, Jukka Juslin 15

SWT SWT: n vaatimat importit © Jukka Harju, Jukka Juslin 15

SWT Asettelut © Jukka Harju, Jukka Juslin 16

SWT Asettelut © Jukka Harju, Jukka Juslin 16

SWT - tulos • Edellisestä ohjelmasta saadaan seuraavanlainen käyttöliittymä: © Jukka Harju, Jukka Juslin

SWT - tulos • Edellisestä ohjelmasta saadaan seuraavanlainen käyttöliittymä: © Jukka Harju, Jukka Juslin 17

SWT • SWT: stä voisi kätevästi käyttää esimerkiksi Java 6: n uutta System. Tray-luokkaa

SWT • SWT: stä voisi kätevästi käyttää esimerkiksi Java 6: n uutta System. Tray-luokkaa • System. Tray asettaa ohjelman työpöydän System. Trayhyn, johon olisi kätevä laittaa vaikka omatekemä Back. Up ohjelmisto (Eclipsen mukana tulee esim. ssh yhteydet tarjoava jsch) © Jukka Harju, Jukka Juslin 18

Visual Editor • Visual Editoria voidaan käyttää luokkaa tehdessä jos edellämainittu plugin on asennettu

Visual Editor • Visual Editoria voidaan käyttää luokkaa tehdessä jos edellämainittu plugin on asennettu • Valitaan New/Other/Java/Visual Class: © Jukka Harju, Jukka Juslin 19