Graafinen käyttöliittymä, osa 2

Slides:



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

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Minimaalinen Java-ohjelma •Kaikki ohjelmakoodi on luokkamäärityksen sisällä •Ohjelma käynnistyy ”public static void main(String[] args)”-metodista •System.out.print()
6. Metodit.
© Hannu Laine 1 Tietorakenteet ja algoritmit Funktio-osoittimet Funktio-osoittimen ja taulukko-osoittimen vertailu Funktio-osoittimen käyttötapoja.
© Markku Kuitunen Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti.
Luku 5 – Tietojen hakeminen sovelluksiin
Outi Grotenfelt & Vesa Ollikainen
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
13. Pakkaukset.
Osio 4: Graafinen käyttöliittymä
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
@ Leena Lahtinen Helia OHJELMOINTITAITO ICT02D 12 OP.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap.
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
VB:n tietokantakäsittely
The Virtual Cell Software: solun toiminnan mallintamista Liisa-Ida Sorsa S Solubiosysteemien perusteet
TAULUKKO YKSIULOTTEINEN TAULUKKO. TAULUKKO  Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Koodistopalvelu. Mikä? Palvelu, jonka avulla koodistoja voidaan jakaa ja hallinnoida keskitetysti. Perustuu JHS-työryhmän suositusluonnokseen ja sen yhteydessä.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia.
© Markku Kuitunen Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti.
Keikkahaku-mashup Pekka Virtanen. Mitä sovellus tekee? Käytetty Last fm ja Youtube rajapintoja Last fm:stä haetaan keikkapaikkojen keikka tietoja paikk.
Osio 4: Graafinen käyttöliittymä
Käsitteellisen mallinnuksen tekniikkaa
TanjaSovelma (JApplet) BorderLayout YlaPaneeli (JPanel) FlowLayout ValilehtiPaneeli (JTabbedPane) Välilehdittäin vaihtuvat paneelit (JPanel) Katso seuraava.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
17. Kooste Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa “A on B:n osa” tai “A kuuluu B:hen”. − Koostesuhteessa.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet.
1 Tenttialue 1/6 Oliot ja luokat Olioiden määrittely Java-kielessä Attribuutit ja metodit Näkyvyysalueet Staattiset attribuutit / metodit Konstruktorit.
© 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.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely.
Oliot ja luokat Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma,
Vesa Ollikainen & Outi Grotenfelt
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
Graafinen käyttöliittymä, osa 1
Javascript 2: Ohjelmointikielen ominaisuudet Jaana Holvikivi Metropolia.
Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas).NET-palvelutoteutus: CoreServiceDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
15. Ohjelmoinnin tekniikkaa
Tietojärjestelmät ja Systeemisuunnittelu
Windows 7 käyttöjärjestelmän käyttö
OneDrive -palvelussa Suoraan Office ohjelmasta Online
OFFICE-TUOTTEIDEN KÄYTTÖ RT- TABLETILLA WORD EXCEL POWERPOINT ONEDRIVE.
Grafiikkaa Javalla Ville Sundberg
5. Kapselointi.
SOTELI “Miten massiivinen massatentti saadaan tehtyä” Tuomas Orama
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
Harjoitustyö.
OHJELMOINTITAITO ICT02D 12 ECTS.
OHJELMOINTITAITO ICT02D 12 ECTS.
3. Attribuutit.
4. Luokan testaus ja käyttö olion kautta
OHJELMOINTITAITO ICT02D 12 ECTS.
Esityksen transkriptio:

Graafinen käyttöliittymä, osa 2 Tapahtumankäsittely, käyttöliittymäkomponentteja Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

MVC-malli MVC-malli jakaa sovelluksen malli- ja näkymäkerroksiin. Ohjain toimii välittävänä komponenttina. Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Tapahtumankäsittely Graafinen ohjelma on tapahtumaohjattu. Kukin tapahtuma on lähtöisin jostakin tapahtuman lähteestä. Tapahtuma synnyttää aina tapahtumaolion. painikkeelle ActionEvent Tapahtumankuuntelijaluokassa määritetään, mitä tapahtuman syntyessä tehdään. ActionListener-rajapinnan toteutus: metodi actionPerformed Kuuntelijaluokka rekisteröidään komponentin kuuntelijaksi Tapahtuman kuuntelijaluokka toteutetaan usein anonyyminä sisäluokkana, joka kutsuu ohjaimessa olevaa Swing-riippumatonta tapahtuman jatkokäsittelymetodia. Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Painikkeen kuuntelu MVC-mallissa Luodaan malli-, ohjain- ja näkymäluokat. Näkymäluokkaan kirjoitetaan toiminnallisuus käyttöliittymän rakentamiseksi. Kuhunkin painikkeeseen liitetään anonyymi sisäluokka, joka määritetään ActionEvent-tapahtumien käsittelijäksi. Kirjoitetaan metodi actionPerformed(), jonka sisällä tehdään ne toimenpiteet, joihin painikkeen painamisen on johdettava. Käytännössä kutsutaan ohjaimen jatkokäsittelymetodia. Jatkokäsittelymetodin parametrit eivät sisällä Swing-komponentteja. Kukin tapahtumankuuntelijaluokka (anonyymi sisäluokka) rekisteröidään halutun painikkeen kuuntelijaksi. kutsutaan JButton-painikkeen metodia addActionListener(). Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Esimerkki Kahden painikkeen kuuntelu voidaan toteuttaa kahden anonyymin sisäluokan avulla. Koodiesimerkki PistelaskurinGUI Pistelaskuri PistelaskurinOhjain Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Pistelaskuriesimerkki: malli Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Pistelaskuriesimerkki: näkymä Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Pistelaskuriesimerkki: ohjain Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Tapahtumankuuntelijan muut toteutustavat Erillisissä luokissa Nimetyissä sisäluokissa Oma sisäluokka kullekin painikkeelle Yhteinen sisäluokka kaikille painikkeille Tapahtuman lähde selvitettävä ns. toimintokomennon avulla. Painikkeeseen liitetään haluttu merkkijono metodilla setActionCommand() Merkkijono saadaan kysyttyä tapahtumaoliolta metodilla getActionCommand() Koodiesimerkit PistelaskurinGUI2 PistelaskurinGUI3 Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Säiliöt Säiliöt ”niputtavat” käyttöliittymäkomponentteja. Koodiesimerkki IlmoittautuminenGUI Säiliöt ”niputtavat” käyttöliittymäkomponentteja. Säiliöitä voidaan asettaa sisäkkäin. Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Säiliöt JFrame on normaalisti ylimmän tason säiliö. Muita vaihtoehtoja JApplet, JDialog, JWindow JPanel on perussäiliö alemmilla tasoilla. Komponentteja lisätään add()-metodilla. Muita säiliöitä: JScrollPane JTabbedPane JSPlitPane Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Esimerkki: JScrollPane Koodiesimerkki JScrollPaneGUI Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Sijoittelijat Sijoittelija määrää, miten komponentit sijoitellaan säiliön sisällä. Tutustutaan kolmeen sijoittelijaan FlowLayout Vasemmalta oikealle, ylhäältä alas GridLayout Ruudukko BorderLayout Keskialue ja neljä reuna-aluetta Oletussijoittelijana on FlowLayout. Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

FlowLayout setTitle("FlowLayout"); paneeli = new JPanel(new FlowLayout()); for (int i = 0; i<=5; i++) { paneeli.add(painikkeet[i]); } setTitle("FlowLayout, vasen tasaus"); paneeli = new JPanel(new FlowLayout(FlowLayout.LEFT)) ; for (int i = 0; i<=5; i++) { paneeli.add(painikkeet[i]); } Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

GridLayout setTitle("GridLayout"); //… setTitle("GridLayout"); paneeli = new JPanel(new GridLayout(4,3)); for (int i = 0; i<12; i++) { paneeli.add(painikkeet[i]); } Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

BorderLayout setTitle("BorderLayout"); paneeli = new JPanel(new BorderLayout()); paneeli.add(painikkeet[0], BorderLayout.NORTH); paneeli.add(painikkeet[1], BorderLayout.SOUTH); paneeli.add(painikkeet[2], BorderLayout.WEST); paneeli.add(painikkeet[3], BorderLayout.EAST); paneeli.add(painikkeet[4], BorderLayout.CENTER); Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Valintapainikkeet ja valintaruudut Koodiesimerkki ValintakomponentitGUI JRadioButton, JCheckBox Yhteen kuuluvat valintapainikkeet yhdistetään ButtonGroup- olioon. Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen

Luettelo- ja yhdistelmäruudut JList, JComboBox Koodiesimerkki LuetteloruudunGUI Ohjelmoinnin jatko (Java) Metropolia Ammattikorkeakoulu Vesa Ollikainen