Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Lisäosa: GUI Tuloksellinen Java-ohjelmointi.

Samankaltaiset esitykset


Esitys aiheesta: "© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Lisäosa: GUI Tuloksellinen Java-ohjelmointi."— Esityksen transkriptio:

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

2 © Jukka Harju, Jukka Juslin2 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 -kirjaa.Creative Commons Attribution-ShareAlike 1.0 -lisenssillä

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

4 © Jukka Harju, Jukka Juslin4 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

5 © Jukka Harju, Jukka Juslin5 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

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

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

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

9 © Jukka Harju, Jukka Juslin9 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.*;

10 © Jukka Harju, Jukka Juslin10 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)

11 © Jukka Harju, Jukka Juslin11 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/ict02d/ICT02DOpiskelijanCD/85_eclipse_plugin s/VE-runtime-1.1.0.1.ziphttp://myy.helia.fi/~jusju/ict02d/ICT02DOpiskelijanCD/85_eclipse_plugin s/VE-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

12 © Jukka Harju, Jukka Juslin12 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

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

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

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

16 © Jukka Harju, Jukka Juslin16 SWT Asettelut

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

18 © Jukka Harju, Jukka Juslin18 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)

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


Lataa ppt "© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Lisäosa: GUI Tuloksellinen Java-ohjelmointi."

Samankaltaiset esitykset


Iklan oleh Google