Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Java-ohjelmointi Opas ammattimaiseen osaamiseen Lisäosa: GUI

Samankaltaiset esitykset


Esitys aiheesta: "Java-ohjelmointi Opas ammattimaiseen osaamiseen Lisäosa: GUI"— Esityksen transkriptio:

1 Java-ohjelmointi Opas ammattimaiseen osaamiseen Lisäosa: GUI
© Jukka Harju, Jukka Juslin 1

2 © Jukka Harju, Jukka Juslin
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1.0 -lisenssillä. Lisäys edelliseen lisenssiin: Kalvojen muokkaaminen on sallittu vain opettajille, joiden kursseilla käytetään kurssikirjana Tuloksellinen Java-ohjelmointi - tai Java ohjelmointi opas ammattimaiseen osaamiseen -kirjaa. © Jukka Harju, Jukka Juslin

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

4 © Jukka Harju, Jukka Juslin
Pohjatiedot Pohjatietona tämän päivän asialle oletetaan Java AWT:n tuntemus Tapahtumankäsittelijät, sisäluokat Käyttöliittymäelementtien asemointi FlowLayoutin ja null- layotin avulla Pop-up ikkuna JOptionPane:n avulla Luokan periyttäminen Frame-luokasta © Jukka Harju, Jukka Juslin

5 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

6 © Jukka Harju, Jukka Juslin
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

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

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

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

10 Sisältöpaneeli ContentPane
Lisämutkana verrattuna AWT:hen on sisältöpaneeli ContentPane ContentPane saadaan JFramesta periytetystä luokasta kiinni getContentPane metodin avulla ContentPaneen saatetaan lisätä sisälläisia paneleita kuvaamaan käyttöliittymän eri osioita (JPanel-luokka) © Jukka Harju, Jukka Juslin

11 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: s/VE-runtime 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

12 © Jukka Harju, Jukka Juslin
Layoutit Swingissä on käytettävissä useita eri Layouteja Voit tutustua niihin API:sta Layoutien käyttö on monesti haastavaa (muiden kuin FlowLayoutin) sillä on vaikea sanoa mihin elementti loppujenlopuksi asettuu Asemointi on luonnollisesti tietysti tärkeää ja yksi hyvä Layout siihen on GridBagLayout, 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 FlowLayoutia © Jukka Harju, Jukka Juslin

13 © Jukka Harju, Jukka Juslin
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

14 © Jukka Harju, Jukka Juslin
SWT Importit ja main-metodi on esitetty omalla kalvollaan, vaadittu createSShell metodi taas omalla kalvollaan: © Jukka Harju, Jukka Juslin

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

16 © Jukka Harju, Jukka Juslin
SWT Asettelut © Jukka Harju, Jukka Juslin

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

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

19 © Jukka Harju, Jukka Juslin
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

20 © Jukka Harju, Jukka Juslin
Visual Editor Visual Editorin työpöytä valinnan ”Visual Class” jälkeen näyttää tältä: © Jukka Harju, Jukka Juslin

21 © Jukka Harju, Jukka Juslin
Visual Editor Muista pinnata © Jukka Harju, Jukka Juslin

22 © Jukka Harju, Jukka Juslin
Visual Editor JFrame © Jukka Harju, Jukka Juslin

23 © Jukka Harju, Jukka Juslin
JFrame JFrame © Jukka Harju, Jukka Juslin

24 © Jukka Harju, Jukka Juslin
JFrame JFramen asettelua © Jukka Harju, Jukka Juslin

25 JFrame esimerkkikoodia
Esimerkki-ikkuna: Muista null-layout © Jukka Harju, Jukka Juslin

26 © Jukka Harju, Jukka Juslin
JFrame Snap-To-Grid: © Jukka Harju, Jukka Juslin

27 © Jukka Harju, Jukka Juslin
JFrame Properties JFrame Properties ikkuna © Jukka Harju, Jukka Juslin


Lataa ppt "Java-ohjelmointi Opas ammattimaiseen osaamiseen Lisäosa: GUI"

Samankaltaiset esitykset


Iklan oleh Google