Java-ohjelmointi Opas ammattimaiseen osaamiseen Lisäosa: GUI

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Kuva kuvaan (MS Paint) Avaa molemmat kuvat esikatselusta muokkaustilaan – klikkaamalla hiiren väärällä napilla > Avaa sovelluksessa… > MS Paint Tässä vaiheessa.
ENTERPRISE SEARCH Toteutustekniikka Mikko Uusitalo Tampereen ammattikorkeakoulu.
Koostumussuhde Jukka Juslin © Jukka Juslin.
Tämän esityksen avulla osaat ladata PAF 5
JavaFX © Reino Aarinen, 2007.
Ohjelmointitaito (ict1td002, 12 op) Opintojakson esittely, kevät 2009.
Ohjelmointitaito (ict1td002, 12 op) Opintojakson esittely, syksy 2008.
© Jukka Juslin1 Ohjelmointitaito (ict1td002, 12 op) Opintojakson esittely Kevät 2008 Jukka Juslin, Raine Kauppinen Tuloksellinen Java-ohjelmointi.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 13 Monimuotoisuus.
© Markku Kuitunen Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 12 Periytyminen.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 6 (osittain) Tiedostot.
Kurssilla käytettävät työkalut
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
© Jukka Harju, Jukka Juslin
13. Pakkaukset.
Osio 4: Graafinen käyttöliittymä
Ortodoksinen viestintäseminaari Helsinki
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Kurssilla käytettävät työkalut
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Ehto- ja toistolauseet.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Java-ohjelmointikieli -Javasta ohjelmointikielenä -ohjelmontivälineistä -opasteista.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
Erica de Wit & Kirsi Haarto 09A
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Luku 4 Ehto- ja toistolauseet Tuloksellinen Java-ohjelmointi.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
Java-ohjelmoinnin perusteet kesä 2012 TERVETULOA! Opettaja Jukka Juslin.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 2 Ensimmäiset ohjelmat © Jukka Harju, Jukka Juslin.
1 © Jukka Juslin Web-käyttöliittymä Jukka Juslin.
© Markku Kuitunen Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti.
Osio 4: Graafinen käyttöliittymä
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Näppäimistöltä lukeminen Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In -luokka.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Lisäosa: GUI Tuloksellinen Java-ohjelmointi.
© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.
Jaakko Markkanen & Ari Laine. Yhteisö, joka kehittää työpöytäympäristöä KDE SC (Software Compilation) Avoimen lähdekoodin ja voittoa tavoittelematon yhteisö.
Sovelluskehittimet Nikolaos Avanidis oh5.
Toteutus. Ohjelmointikielen valinta Käytetään samaa kuin muutkin Työkalujen laatu Usein asiakas määrää Yleensä valittu jo ennen toteutusta Osaaminen vs.
1 Tenttialue 1/6 Oliot ja luokat Olioiden määrittely Java-kielessä Attribuutit ja metodit Näkyvyysalueet Staattiset attribuutit / metodit Konstruktorit.
Lyhyt johdanto CVS:ään (ict1td002 - Ohjelmointitaito)
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
© Markku Kuitunen Osio 4: Graafinen käyttöliittymä Tavoite: Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi HashMap, Properties, Logger, etc Tuloksellinen Java-ohjelmointi.
Tiedostojen käsittely
1 © Jukka Juslin ict02d ohjelmointitaito (12 op) Päiväopiskelijat.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
Tuloksellinen Java-ohjelmointi Luku 2 Ensimmäiset ohjelmat
Graafinen käyttöliittymä, osa 1
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
Sähköpostin lähetys Java- ohjelmasta Jukka Juslin.
Silverlight Expression Blend 3 työkaluna. Mikäs on Silverlight? (1/2) Pääasiassa teknologia webbiin –Internet Explorer –Mozilla –Opera –Safari.
VARMUUSKOPIOINTI Näin tehdään Varmuuskopiointi Mac OS X 10.5 Leopard Serverillä, mutta varmuuskopiointi tehdään samalla tavalla myös muissa Mac OS X- käyttöjärjestelmissä,
5. Kapselointi.
Tuloksellinen Java-ohjelmointi
Kierros 4 - OLO Web.
Tietoturva.
14. Hyvä ohjelmointitapa.
13. Pakkaukset.
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
Esityksen transkriptio:

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

© 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

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

© 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

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

© 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

© 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

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

© 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

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

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.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

© 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

© 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

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

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

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

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

© 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

© 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

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

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

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

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

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

JFrame esimerkkikoodia Esimerkki-ikkuna: http://myy.helia.fi/~jusju/ohjelmointitaito/FrLaskutus.java Muista null-layout © Jukka Harju, Jukka Juslin

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

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