Luento 5. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä

Koko: px
Aloita esitys sivulta:

Download "Luento 5. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä"

Transkriptio

1 Luento 5 T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW:

2 Patterns & AWT/Swing Observer-pattern Tapahtumankuuntelijat Composite-pattern Komponenttien piirtäminen Komponenttien asettelu ruudulle Abstract Factory Käyttöliittymän ulkoasun vaihtaminen

3 Observer Observer Observer mahdollistaa toiminnan, jossa muutos yhdessä oliossa aiheuttaa automaattisesti muutoksen kaikissa siitä riippuvissa olioissa Riippuvat oliot vain pyytävät kiinnostavaa oliota kertomaan muutoksista Käytännössä kiinnostavalla oliolla on lista johon kiinnostuneet (Listener, Observer) voivat ilmoittautua Kun jotain tapahtuu, käydään jokainen listallaolija läpi ja kutsutaan jokaisen kohdalla ilmoitusmetodia. Yleensä ilmoitusmetodille vielä annetaan pikku viesti (Event) joka kuvaa tapahtuneen asian Kuunneltavan ei tarvitse tietää kuuntelijasta muuta kuin että se täyttää kuuntelija -rajapinnan

4 Observer UML-kaavio <<interface>> Havainnoitava +lisaakuuntelija( ) +poistakuuntelija( ) +ilmoitamuutos( ) havainnoijat[] Suorittaa kaikille havainnoijille metodin ilmoitamuutos() <<interface>> Havainnoija +ilmoitamuutos() SeurattavaLuokka HToteutus voi halutessaan reagoida muutokseen HavainnoijaToteutus

5 Observer Observer-malli Yksi parhaista esimerkeistä Observer-mallin käytöstä on javan Swing- ja AWT-käyttöliittymien käyttämät tapahtumankuuntelijat Käytännössä mallia voidaan käyttää mihin tahansa tilanteeseen, jossa useamman paikan ohjelmassa tulee reagoida johonkin muutokseen. Tulostus päättyy Puuhun lisätään solmu Äänikanava suljetaan jne..

6 Observer import java.awt.*; import java.awt.event.*; public class Example extends Frame{ public static void main(string args[]){ new Example().start(); } public void start(){ final Button mybutton = new Button( Press Me ); ActionListener hello = new HelloListener(); mybutton.addactionlistener(hello); mybutton.addactionlistener(new ActionListener(){ public void actionperformed(actionevent ae){ mybutton.setlabel( Pressed! ); } }); add(mybutton); pack(); setvisible(true); } } public class HelloListener implements ActionListener{ public void actionperformed(actionevent ae){ System.out.println( Hello World! ); } }

7 Tulevia luentoja (alustava) 8.10 Graafiset käyttöliittymät, Versionhallinta Tapahtumat ja tapahtumankäsittely, GUI:n perustoiminnallisuus, Grafiikan piirtäminen. Versionhallinta Rinnakkaisohjelmoinnin alkeet Javan rinnakkaisuusprimitiivit, Luokka Thread, Runnablerajapinta, Perus Producer-Consumer esimerkkitoteutus, blocking, potentiaaliset ongelmat kuten deadlock. Graafiset käyttöliittymät ja rinnakkaisuus Vaihtelevia aiheita Esim. Ohjelmien profilointi ja profiilien tulkinta, asiaa koodin optimoinnista, Lisää kirjastoja, yleiskatsaus palautettuihin suunnitelmiin ja ohjeistusta projektiin.

8 Graafiset käyttöliittymät

9 Graafiset käyttöliittymät AWT ja Swing-kirjastot Muutama peruskomponentti Tapahtumankäsittely Tapahtumaoliot Tapahtumankuuntelijat Komponenttien sijoittelu Komponenttien lisääminen ja poistaminen toisista komponenteista Layout managerit Grafiikka (ensi viikolla) Piirtäminen komponentteihin

10 AWT-kirjasto Java API:ssa on kaksi graafisten käyttöliittymien kasaamiseen tarkoitettua kirjastoa AWT Swing AWT Abstract Windowing Toolkit on Java APIn kahdesta GUIkirjastosta vanhempi Vaikka monet Swing-kirjaston luokista käyttävätkin AWT-luokkia tai periytyvät suoraan niistä, voimme aloittaa tutustumisen graafisiin käyttöliittymiin Swing-kirjastosta Tulemme tarvitsemaan luokkia myös täältä...

11 AWT-kirjasto Koko luokkahierarkian huipulla on luokka java.awt.component Kaikki graafiset komponentit (myös Swing-kirjaston) periytyvät tästä luokasta Napit, teksti-ikkunat, jne... Olennaisin Component-luokan aliluokka on luokka Container, joka kuvaa kaikkia komponentteja joihin voidaan lisätä muita komponentteja esim. painikkeita (Button) voidaan lisätä ikkunaan (Frame, Window)

12 Tapahtumat - events Event Komponentit tiedottavat niihin kohdistuneista käyttöliittymätapauksista luomalla tapahtunutta kuvaavan tapahtumaolion, (event) Tapahtumaluokkien hierarkian ylin luokka on java awt.event.awtevent, jonka metodeista alla kaksi tärkeintä public Object getsource(); Palauttaa komponentin jolta tapahtumaolio on lähtöisin public int getid() Palauttaa tapahtuman tyyppiä kuvaavan luvun. Tapahtumaluokissa on tyypillisesti määritelty vakioita, joihin lukua verrataan.

13 Tapahtumat - events Aina tapahtumaoliolle ei tarvitse kutsua metodeja lainkaan Joskus riittää vain tieto siitä että tapahtuma tapahtui. Nappia painettiin Hiirtä napsautettiin

14 Tapahtumat - events Eri tyyppisille asioille on kaikille omat AWTEventluokan aliluokkansa ActionEvent kuvaa jotakin komponenttiin liittyvää korkean tason tapahtumaa, kuten napin painaminen jne. Tällöin komponenttia kuuntelevat oliot voivat keskittyä siihen, mitä tapahtui, sen sijaan että niiden tarvitsisi tulkita komponentin tapahtumia hiiren tai näppäimistön toiminnasta kertovista tapahtumista. ActionEvent:it lähetetään kaikille ActionListener-olioille jotka on rekisteröity komponentin kuuntelijoiksi

15 Tapahtumat - events Lisää tapahtumia MouseEvent kertoo hiiren painalluksista MouseMotionEvent hiiren liikkeistä ComponentEvent komponenttien kokojen muutoksista, näkymisestä jne AdjustmentEvent scrollbar :ien arvojen muutoksista jne... (näitä on paljon)

16 TapahtumanKuuntelijat Tapahtumankuuntelijaksi, (EventListener) kutsutaan oliota, joka: Täyttää halutun kuuntelijarajapinnan Sisältää usein vain muutaman metodin, joita kuunneltava komponentti kutsuu kun jotain tapahtuu esim ActionListener-rajapinnan void actionperformed(actionevent ae) Tyypillisesti metodi vain saa parametrina tapahtumaolion, joka kuvaa mitä tapahtui. Voidaan rekisteröidä kuuntelemaan mitä jossakin komponentissa tapahtuu. Kuuntelee vain tietyntyyppisiä tapahtumia esim public void addactionlistener(actionlistener lisattavakuuntelija)

17 TapahtumanKuuntelijat Jokainen rekisteröity kuuntelija laitetaan talteen komponentin kentässä määriteltyyn listaan. Kun jotain tapahtuu luodaan tapahtumaolio, käydään lista läpi silmukalla ja kutsutaan jokaisen listan sisältämän kuuntelijan kohdalla olennaista metodia antaen parametrina tapahtumaolio.

18 TapahtumanKuuntelijat Esimerkki : painonapin (Button) painamiseen reagoiva ohjelma public class NapinKuuntelija implements ActionListener { } public void actionperformed(actionevent tapahtuma){ System.out.println( Nappia painettiin!! ); } public class JokuLuokka extends...{ private JButton painike;... painike = new JButton( Paina tästä! ); painike.addactionlistener(new NapinKuuntelija());... }

19 Swing-kirjasto Swing-kirjasto on nykyisin suurelta osin korvannut AWT-kirjaston. Käyttöliittymän kaikista komponenteista (Napit, ikkunat, jne.)on olemassa Swing-versiot Swing:in kanssa kuitenkin käytetään suurta joukkoa AWT:n ei-komponenttiluokkia, esim ActionListener Swing kirjasto sijaitsee paketissa javax.swing ja sen alipaketeissa

20 Swing-kirjasto Olennaisimmat erot AWT-kirjastoon ovat: Komponenttien lisäämisessä toisiin komponentteihin getcontentpane Komponenttien piirtämisessä paintcomponent Kaikki Swing-komponentit ovat lightweight, eli ne piirretään javan puolella (AWT sisälsi natiivikomponentteja)

21 Komponenttityypit www-selaimen ikkuna sisältää tyypillisesti valikkorivin, jonkinlaisen painikkeiden rivin, tilan jossa www-sivut näytetään, sekä jonkinlaisen statusrivin ruudun alalaidassa Valikkorivi sisältää joukon valikoita Jokainen valikko taas sisältää joukon valikkoalkioita Painikerivi sisältää painikkeita sekä tekstikentän johon sivun osoitteen voi kirjoittaa Graafiset komponentit voivat sisältää toisia graafisia komponentteja. Vastaavasti näiden sisään voidaan asettaa toisia komponentteja

22 JPanel Mikäli olisimme rakentamassa mainitun kaltaista selainta, voisi painike/osoiteriviä kuvata luokan JPanel oliolla. JPanel on komponentti, jonka tehtävä on toimia kuin laatikko, johon voidaan lisätä joukko muita komponentteja. Säiliöt Käyttöliittymät rakennetaan tyypillisesti tällaisista laatikoista, joilla tila saadaan jaettua sopivankokoisiin ja muotoisiin suorakaiteisiin. JPanelin lisäksi monet muutkin komponentit voivat sisältää muita komponentteja: JFrame, JWindow, JScrollpane, jne.. Tällaisia komponentteja, joiden tehtävä on tavallaan säilöä muita komponentteja ja jäsentää niiden sijoittelua kutsutaan yhteisesti nimellä container, säiliö

23 Top-level Containers Top-level container on säiliö, jota ei voi (eikä tarvitse) sisällyttää muihin säiliöihin. Jotta komponentteja voitaisiin näyttää ruudulla, niiden täytyy sisältyä komponenttien hierarkiaan, jonka huipulla on jokin Swingin Top-level Container. JFrame Ohjelman ikkuna JApplet www-sivuille sijoitettava sovelma JDialog Apuikkuna, jolla voidaan esittää eri kysymyksiä jne. Vaikkapa ladattavan tiedoston valinta, jne. Jokainen Swing:in ylimmän tason säiliö sisältää alueen nimeltä contentpane johon lisättävät komponentit lisätään. Tähän alueeseen haetaan viittaus metodilla getcontentpane() jonka jälkeen sen kanssa voi toimia pitkälti kuin se olisi JPanel

24 Top-level Containers Top-level container on säiliö, jota ei voi (eikä tarvitse) sisällyttää muihin säiliöihin. Jotta komponentteja voitaisiin näyttää ruudulla, niiden täytyy sisältyä komponenttien hierarkiaan, jonka huipulla on jokin Swingin Top-level Container. JFrame Ohjelman ikkuna JApplet www-sivuille sijoitettava sovelma JDialog Apuikkuna, jolla voidaan esittää eri kysymyksiä jne. Vaikkapa ladattavan tiedoston valinta, jne. Ylimmän tason säiliöihin voi lisätä myös valikoita. JWindow on muuten kuin JFrame, mutta se tarvitsee jo luontivaiheessa jonkin JFrame:n joka toimii sen isänä.

25 Top-level containers Koko käyttöliittymä ikkunoineen tulee näkyviin vasta kun ylimmän tason säiliölle kutsutaan metodia setvisible boolean-arvolla true. public void setvisible(boolean näkyykö)

26 Joitakin Swing- komponentteja

27 JButton Ehkä helpoimmin hahmotettava Swing:in komponenteista on painonappi, JButton Napissa voi esittää joko tekstiä, kuvan tai molemmat. Halutessa teksti voi olla myös HTML-muotoista, jolloin sitä voi muotoilla vapaammin. Yleisesti tarvittavia metodeja luokassa on vähän. Alla annetulla listalla pärjää pitkälle. konstruktorit addactionlistener kuuntelijoiden lisäämiseen setenabled asettaa sen, toimiiko nappi vai onko se inaktiivinen, harmaa

28 Säiliöluokkia Kehittyneemmät säiliöluokat JScrollPane on pitkälti kuin JPanel, joka mahdollistaa suurempien komponenttien näyttämisen esittämällä sisältämänsä komponentin vierityspalkeilla (scrollbar) varustettuna. JTabbedPane on komponentti joka mahdollistaa sisältönsä vaihtamisen painamalla haluttua välilehteä (tab). JSplitPane on komponentti joka sisältää näkymän joka on jaettu joko pysty tai vaakasuunnassa kahteen osaan. Tätä jakoa voi muuttaa hiirellä. Myös muita: LayeredPane

29 Tekstikomponentteja JLabel komponentti, johon ei tyypillisesti liity mitään toiminnallisuutta. Sen avulla voi halutussa tilassa esittää jotakin tekstiä. JTextField yksirivinen tekstikenttä, jonka sisältöä voi tarvittaessa muuttaa. Tekstin muuttumista voi seurata ActionListenerillä, joka reagoi enter:in painallukseen Vastaavasti tekstin muuttumista sitä muutettaessa voi seurata liittämällä tekstikentän sisältämään tekstidokumenttiin DocumentListener:in Tekstin voi toki lukea milloin vain, esim kun muualla käyttöliittymässä painetaan jotain nappia. JPasswordField kuten edellä, mutta arvattavin muutoksin

30 Tekstikomponentteja...Lisää tekstikenttiä ja editoreja JTextArea on karkeasti määriteltynä monirivinen versio JTextField:istä. Siihen ei voi lisätä ActionListener:iä, vaan muutoksia seurataan muilla kuuntelijoilla Kursorin paikka CaretListener Tekstin sisältö DocumentListener (komponentin sisältämään dokumenttiin ) Usein muutoksia ei tarvitse kuunnella, koska monesti käyttöliittymissä tapahtumat laukaistaan lopulta painamalla painikkeita. Sitten vain käydään lukemassa tämänhetkinen teksti Jos kuitenkin halutaan automaattisesti päivittää tietoja muualla ohjelmassa kuuntelijoita tarvitaan.

31 Tekstikomponentteja Tekstikenttiä ja editoreja JEditorPane ja JTextPane pidemmälle kehittyneitä versioita editoitavista tekstialueista. Molemmat tukevat eri kirjasimien käyttöä tekstissä, ja kuvien lisäämistä tekstin joukkoon. JEditorPane tukee oletusarvoisesti HTML, RTF ja plaintext dokumenttien lukemista ja kirjoittamista.

32 Komponenttien asettelu

33 Komponenttien asettelu Sijoittelu Kuten jo mainittiinkin, on käyttöliittymäkirjastossa ns. säiliöitä (container), jotka voivat sisältää toisia komponentteja. Komponentin voi lisätä säiliöön antamalla sen parametrina säiliön metodille add(komponentti) Vastaavasti komponentin voi poistaa metodilla remove(komponentti) Säiliö pitää listaa sisältämistään komponenteista, esim. jotta se voisi tarvittaessa välittää tapahtumia se voisi pyytää sisältämiään komponentteja piirtämään itsensä Huom: Composite-suunnittelumalli se voisi laskea komponenteille tarvittaessa uuden sijoittelun ruudulla

34 Komponenttien asettelu Milloin viimeksi näit ohjelman jonka ikkunan kokoa ei saanut muuttaa? (poislukien pelit...) Javalla rakennettujen käyttöliittymien yksi perusidea on, että komponenteille ei määrätä kiinteitä paikkoja ruudulla, vaan niiden paikat ja sijainnit muuttuvan dynaamisesti, kun säiliö, johon ne on lisätty muuttaa muotoaan. Jokaiseen Javan säiliötyyppiin on liitetty ns. Layout Manager, joka laskee säiliön sisältämille komponenteille nämä paikat

35 Komponenttien asettelu Layout Manager Layout manager käyttää sijoittelun päättelyyn komponenteilta saamaansa tietoa niiden koosta sekä itse LayoutManagerille annettuja lisätoiveita (Vaihtelee managereittain). Käytännössä vakiokomponentit hoitavat tämän automaattisesti Jos teet omia komponentteja niin komponenttisi voi tiedottaa kokotoiveistaan korvaamalla metodit (tarvitaan aika harvoin) public Dimension getminimumsize().. palauttaa minimikoon public Dimension getmaximumsize()..palauttaa maksimikoon public Dimension getpreferredsize()..palauttaa halutun koon Kaikki managerit (mm. GridLayout) eivät kunnioita näitä

36 Komponenttien asettelu AWT API:n mukana tulee joukko erilaisia Layout Managereja, joista seuraavassa muutama yleisimmin käytetty FlowLayout Asettelee komponentit riveittäin (kuten tekstin sanat), kunnes riville ei mahdu enempää, jolloin vaihdetaan riviä. GridLayout Asettelee komponentit taulukkoon siten että jokaisen komponentin leveys ja korkeus ovat samat. Venyttää komponentit niin että ne täyttävät koko ruudun. BoxLayout Asettelee komponentit joko vaakaan tai pystyyn, niin että asettelusuunnassa komponentit ovat halutun kokoisia (preferredsize) ja toisessa suunnassa saman kokoisia. Näillä kolmella pääsee jo pitkälle...

37 Komponenttien asettelu...jatkuu GridBagLayout Monimutkaisempi layout manager, jolla voi tehdä melkein mitä vain (mm. imitoida kaikkia yllämainittuja managereja) Tällä voi asettaa osan komponenteista vakiokokoisiksi, osan kokoaan muuttaviksi jne.

38 Komponenttien asettelu Älä yritä tehdä kaikkea kerralla. Käytännössä käyttöliittymän rakentamisessa käytetään apuna säiliöitä, kuten JPanel, joilla alue ensin jaetaan osiin. luonnollisesti paneelienkin koot määrää jokin layout manager Jokaisen paneelin sisällön voi jakaa halutessaan alipaneeleihin jne. ja määritellä näille kaikille tilanteeseen sopivat layout managerit. pack() On usein kätevää kutsua ylimmän tason säiliölle juuri ennen sen asettamista näkyviin metodia pack(). pack() asettelee säiliön ja muuttaa ikkunan sen kokoiseksi että kaikki komponentit näkyvät, mikäli mahdollista.

39 Kertaus Esiteltiin joukko yleisimpiä graafisia komponentteja Esiteltiin, kuinka komponentteihin voidaan liittää toiminnallisuutta tapahtumankuuntelijat Kerrottiin komponenteista ja säiliöistä. Esiteltiin ns. ylimmän tason säiliöt ja kuinka ikkunan saa näkyväksi Esitettiin kuinka komponentteja lisätään ja poistetaan säiliöistä Esiteltiin, kuinka komponenttien asetteluun säiliössä voi vaikuttaa layout managereilla

40 Versionhallinta Versionhallintajärjestelmä säilöö kirjoittamasi koodin historian. Jos koodiin tulee bugi, voit palata takaisin vanhaan versioon Jos vahingossa poistat tiedoston, voit hakea sen takaisin Jos poistit koodia joka olikin tarpeellista voit hakea sen takaisin Jos teet työtä ryhmässä (ei tällä kurssilla :^) Niin yhteisen versionhallinnan kautta voit helposti jakaa tiedostot toisten kanssa Tämä on paljon kätevämpää kuin tiesostojen kopiointi tai mailailu käyttäjältä toiselle

41 Versionhallinta On hyvän tavan mukaista laittaa versionhallintaan vain ehjiä (kääntyviä ja näennäisen bugittomia versioita)...ainakin monen koodaajan projektissa Tällä kurssilla voit harjoitella versionhallinnan kanssa ja laittaa myös keskeneräisiä versioita versionhallintaan kukaan muu ei ainakaan kärsi

42 CVS CVS on ehkä yleisimmin käytetty versionhallintajärjestelmä Mm. Eclipse tukee CVS:ää suoraan Kurssin sivuille tulee ohjeet CVS:n ja SubVersion:in käytöstä Demo cvs -d init cvs -d import -m "Huippuohjelma" projekti otto main_branch

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 18: Graaset käyttöliittymät Riku Saikkonen (merkityt ei-laajan kurssin kalvot: Otto Seppälä) 3. 3. 2011 Sisältö 1 Graasten käyttöliittymien oliomalli 2

Lisätiedot

JAVA-OHJELMOINTI 3 op A274615

JAVA-OHJELMOINTI 3 op A274615 JAVA-OHJELMOINTI 3 op A274615 JFC & Swing, Look & Feel, Events Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Olio-ohjelmointi Käyttöliittymä

Olio-ohjelmointi Käyttöliittymä Olio-ohjelmointi 2016 Käyttöliittymä n Javalla on helppo toteuttaa yksinkertainen graafinen käyttöliittymä n AWT/Swing n JFC (Java Foundation Collection) n AWT-sisältää Javan grafiikka GUI-komponmentit

Lisätiedot

GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI JAVA SWING

GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI JAVA SWING GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI JAVA SWING Käyttöliittymäkomponentteja Sovelluksen pääikkunan luominen Rinnakkainen toiminnallisuus Miten käyttöliittymä lopetetaan? Ikkunan peruskomponentit Mihin

Lisätiedot

Graafinen käyttöliittymä, osa 2

Graafinen käyttöliittymä, osa 2 Graafinen käyttöliittymä, osa 2 Tapahtumankäsittely, käyttöliittymäkomponentteja MVC-malli M Malli V Näkymä Päivitys C Ohjain Päivitys Tapahtumat MVC-malli jakaa sovelluksen malli- ja näkymäkerroksiin.

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Tavoite: Osio 4: Graafinen käyttöliittymä Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan perusteet Opiskelija osaa työasemakäyttöliittymän toteutuksen

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Tavoite: Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan perusteet Opiskelija osaa työasemakäyttöliittymän toteutuksen perusteet käyttäen Javan Swing-tekniikkaa

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti (label) muokkausruutu (text field) komentopainike (button) yhdistelmäruutu (combo box) paneeli

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Tavoite: Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan perusteet Opiskelija osaa työasemakäyttöliittymän toteutuksen perusteet käyttäen Javan Swing-tekniikkaa

Lisätiedot

Eclipse & WindowBuilder

Eclipse & WindowBuilder Eclipse & WindowBuilder Yleistä asiaa WindowBuilder on Eclipsessä oleva työkalu, jolla voi graafisesti tehdä käyttöliittymiä. Käyttö perustuu siihen, ettei varsinaista ohjelmakoodia tarvitse itse tehdä,

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Tavoite: Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan perusteet Opiskelija osaa työasemakäyttöliittymän toteutuksen perusteet käyttäen Javan Swing-tekniikkaa

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti (label) muokkausruutu (text field) komentopainike (button) yhdistelmäruutu (combo box) paneeli

Lisätiedot

Java ja grafiikka. Ville Sundberg 12.12.2007

Java ja grafiikka. Ville Sundberg 12.12.2007 Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class

Lisätiedot

Luento 4. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä

Luento 4. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä Luento 4 T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW: http://www.cs.hut.fi/opinnot/t-106.1240/s2007 Projektiaiheista Jos et ole

Lisätiedot

Java layoutit. Juha Järvensivu juha.jarvensivu@tut.fi 2007

Java layoutit. Juha Järvensivu juha.jarvensivu@tut.fi 2007 Java layoutit Juha Järvensivu juha.jarvensivu@tut.fi 2007 Layout Container Container LayoutManager Component Component Component Komponentin koko minimikoko setminumumsize(dimension d) Useimmat layoutmanagerit

Lisätiedot

Luento 6. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä

Luento 6. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä Luento 6 T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW: http://www.cs.hut.fi/opinnot/t-106.1240/s2007 Oma Grafiikka Swing-käyttöliittymässä

Lisätiedot

Ikkunointijärjestelmät

Ikkunointijärjestelmät Ikkunointijärjestelmät Johdanto X-ikkunointijärjestelmä Java Yhteenveto Petri Vuorimaa 1 Tehtävät Piirtorutiinit Syöttölaitteiden monitorointi Tapahtumien välitys Ikkunoiden manipulointi Petri Vuorimaa

Lisätiedot

Graafinen käyttöliittymä, osa 1

Graafinen käyttöliittymä, osa 1 Graafinen käyttöliittymä, osa 1 Idea, MVC-malli ja ensimmäinen ohjelma Graafinen käyttöliittymä Ensimmäisen kerran tavoitteena on oppia graafisen ohjelman perusidea sekä oppia laatimaan esimerkin mukaan

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

JAVA-OHJELMOINTI 3 op A274615

JAVA-OHJELMOINTI 3 op A274615 JAVA-OHJELMOINTI 3 op A274615 Layoutit Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi, Talentum 2004. Layout

Lisätiedot

Tietorakenteet, laskuharjoitus 7,

Tietorakenteet, laskuharjoitus 7, Tietorakenteet, laskuharjoitus 7, 14.-19.3. 1. "Tira meets software engineering, osa 1" Lue luentomonisteen kalvot 233-236. Toteuta luokka Opiskelijarekisteri joka tarjoaa seuraavat palvelut: opiskelijoiden

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

Java Swing. Juha Järvensivu 2008

Java Swing. Juha Järvensivu 2008 Java Swing Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys Java ympäristöt Java kirjastot Java Foundation Classes (JFC) Hello Java Swing-kirjasto Grafiikan piirto Tapahtumankäsittely Java ympäristö

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

Java Swing. Juha Järvensivu 2007

Java Swing. Juha Järvensivu 2007 Java Swing Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisällys Java ympäristöt Java kirjastot Java Foundation Classes (JFC) Hello Java Swing-kirjasto Grafiikan piirto Tapahtumankäsittely Java ympäristö

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 7: Olio-ohjelmointia: UML ja suunnittelumallit Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 14. 3. 2012 Sisältö 1 UML-luokkakaaviot

Lisätiedot

Graafinen käyttöliittymä, osa 3

Graafinen käyttöliittymä, osa 3 Graafinen käyttöliittymä, osa 3 Hiiritapahtumat, valikot, Look and Feel Taustaa: painikkeen käsittely Painikkeen tapahtumalähde on JButton-komponentti. Tapahtuma synnyttää aina tapahtumaolion. painikkeelle

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

Sovelmat. Janne Käki

Sovelmat. Janne Käki Sovelmat Janne Käki 24.11.2006 Sovellus extends JFrame public static void main(string[] args), joka tyypillisesti vain luo kehysluokan ilmentymän luontimetodi Sovelma extends JApplet ei main-metodia, ei

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

Teskstialue (JTextArea) ja Scrollaus (JScrollPane)

Teskstialue (JTextArea) ja Scrollaus (JScrollPane) HELIA OHJELMOINTI ict1tn006 1 (32) Viikon 14 materiaalia Teskstialue (JTextArea) ja Scrollaus (JScrollPane) JTextArea on tekstialue, jossa on useita rivejä Muodostimia: public JTextArea(int rows, int columns)

Lisätiedot

Graafisen käyttöliittymän ohjelmointi

Graafisen käyttöliittymän ohjelmointi TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden

Lisätiedot

Webmailin käyttöohje. Ohjeen sisältö. Sähköpostin peruskäyttö. Lomavastaajan asettaminen sähköpostiin. Sähköpostin salasanan vaihtaminen

Webmailin käyttöohje. Ohjeen sisältö. Sähköpostin peruskäyttö. Lomavastaajan asettaminen sähköpostiin. Sähköpostin salasanan vaihtaminen Webmailin käyttöohje https://mail.webhotelli.net sekä https://webmail.netsor.fi Ohjeen sisältö Sähköpostin peruskäyttö Lukeminen Lähettäminen Vastaaminen ja välittäminen Liitetiedoston lisääminen Lomavastaajan

Lisätiedot

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter Olio-ohjelmointi Suunnittelumallit Adapter ja Composite Rakennemalleissa päähuomio kohdistetaan siihen, miten luokkia ja olioita yhdistellään muodostamaan laajempia rakenteita. Rakenteelliset luokkamallit

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Luento 2. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä

Luento 2. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä Luento 2 T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW: http://www.cs.hut.fi/opinnot/t-106.1240/s2007 Abstrakti luokka Abstrakti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 12.4.2010 T-106.1208 Ohjelmoinnin perusteet Y 12.4.2010 1 / 34 Graafiset käyttöliittymät Tähän asti kirjoitetuissa ohjelmissa on ollut tekstipohjainen käyttöliittymä.

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi

Lisätiedot

Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen 1 Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Sisällysluettelo Opetustapahtuman opiskelijalistan tulostaminen... 2 Tenttien opiskelijalistojen tulostaminen... 3

Lisätiedot

Testivetoinen ohjelmistokehitys

Testivetoinen ohjelmistokehitys Testivetoinen ohjelmistokehitys Ohjelman luominen pienin askelin 1. Kirjoita testi, joka testaa ohjelmalle myöhemmin lisättävää toiminnallisuutta. 2. Suorita testi. Testin ei tule mennä läpi. Mikäli testi

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Netsor Webmailin käyttöohje

Netsor Webmailin käyttöohje Netsor Webmailin käyttöohje https://mail.webhotelli.net sekä https://webmail.netsor.fi Ohjeen sisältö Sähköpostin peruskäyttö Lukeminen Lähettäminen Vastaaminen ja välittäminen Liitetiedoston lisääminen

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisällys. 11. Rajapinnat. Johdanto. Johdanto Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.

Lisätiedot

OpenOffice.org Impress 3.1.0

OpenOffice.org Impress 3.1.0 OpenOffice.org Impress 3.1.0 Sisällysluettelo 1 Esityksen luominen...1 2 Dian rakenne...2 3 Dian lisääminen, poistaminen, siirtäminen ja kopioiminen...3 4 Diojen koon muuttaminen...3 5 Pohjatyylisivut...4

Lisätiedot

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Helsingin yliopisto WebOodi 1 OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Opetustapahtuman opiskelijalistan tulostaminen Ilmoittautuneista opiskelijoista

Lisätiedot

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance) Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja

Lisätiedot

Java-API, rajapinnat, poikkeukset, UML,...

Java-API, rajapinnat, poikkeukset, UML,... Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)

Lisätiedot

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. 1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).

Lisätiedot

Javan GUI Scratchaajalle

Javan GUI Scratchaajalle Javan GUI Scratchaajalle Graafisen ikkunan luonti Aiemmin ohjelmoimme luokat ja metodit itse. Graafisia ohjelmia tehdessä kaikkea ei kannata tehdä itse, osan voi ottaa valmiina. Näitä valmishahmoja, eli

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

Lisätiedot

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007 Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit

Lisätiedot

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008 Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Vesisika. metsiemme työmyyrä. http://www.billybear4kids.com/animal/whose-toes/capybara.jpg

Vesisika. metsiemme työmyyrä. http://www.billybear4kids.com/animal/whose-toes/capybara.jpg Vesisika metsiemme työmyyrä http://www.billybear4kids.com/animal/whose-toes/capybara.jpg Faktat Vesisika tykkää vedestä ja näyttää (ja kuulemma maistuu) hieman sialta. Käyttää myös nickiä kapybara. kapiÿva

Lisätiedot

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Ohjelmointi 5: Miinaharava

Ohjelmointi 5: Miinaharava Ohjelmointi 5: Miinaharava Taustaa Tämänkertainen kotitehtävä ei enää liity aikaisemmilla kierroksilla kehittelemäämme seikkailupeliin. Nyt toteutamme graafisen miinaharavapelin. Opimme käyttämään Javan

Lisätiedot

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat Microsoft Office 2010 löytyy tietokoneen käynnistävalikosta aivan kuin kaikki muutkin tietokoneelle asennetut ohjelmat. Microsoft kansion sisältä löytyy toimisto-ohjelmistopakettiin kuuluvat eri ohjelmat,

Lisätiedot

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. MagicDraw-pikaohje Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Windows (sali TC205) 1) Kirjaudu sisään TTY:n intra-tunnuksella.

Lisätiedot

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Helsingin yliopisto WebOodi 1 OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Opetustapahtuman opiskelijalistan tulostaminen Ilmoittautuneista opiskelijoista

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

Javan GUI Scratchaajalle

Javan GUI Scratchaajalle Javan GUI Scratchaajalle Tehtävä: Kasvukausi_1 Kun puutarha nyt näyttää oikealta, sitä olisi hyvä alkaa ohjelmoida toimivaksi. Tehdään aluksi istutukselle kuuntelija, jotta sitä klikkaamalla multaan voi

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse

Lisätiedot

Tietokannan luominen:

Tietokannan luominen: Moodle 2 Tietokanta: Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia, linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat,

Lisätiedot

Ohjelmistojen mallintaminen, sekvenssikaaviot

Ohjelmistojen mallintaminen, sekvenssikaaviot 582104 - Ohjelmistojen mallintaminen, sekvenssikaaviot 1 Vuorovaikutussuunnittelu Oliojärjestelmän toiminta perustuu olioiden vuorovaikutukseen ja yhteistyöhön Olioiden yhteistyö toteutuu operaatioiden

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Google-dokumentit. Opetusteknologiakeskus Mediamylly Google-dokumentit 1 2 3 Yleistä 1.1 Tilin luominen 4 1.2 Docs-päävalikkoon siirtyminen 7 Dokumentit-päävalikko 2.1 Kirjaudu Dokumentteihin 9 2.2 Lähetä tiedosto Google-dokumentteihin 11 2.3 Uuden asiakirjan

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Dialogit. Juha Järvensivu 2008

Dialogit. Juha Järvensivu 2008 Dialogit Juha Järvensivu juha.jarvensivu@tut.fi 2008 Yleistä 2 vaihtoehtoista toteutusmekanismia Layoutteihin perustuva dialogi Absoluuttisiin koordinaatteihin perustuva dialogi Haasteita 1. Dialogin selkeä

Lisätiedot

Harjoitustyö (TKO_2023)

Harjoitustyö (TKO_2023) Harjoitustyö (TKO_2023) Jyri Lehtonen (72039) (alkuperäinen 29.1.2008) päivitetty: 8.2.2008 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee Java-appletti, joka kysyy käyttäjältä asioita Java-kielestä.

Lisätiedot

Päänäkymä Opiskelijan ohjeet Kurssin suorittaminen Opettajan ohjeet kurssin teko

Päänäkymä Opiskelijan ohjeet Kurssin suorittaminen Opettajan ohjeet kurssin teko Simppelit ohjeet Sisällys Päänäkymä... 1 Valikko... 1 Opiskelijan ohjeet Kurssin suorittaminen... 2 Kurssin haku... 2 Kurssin suorittaminen... 2 Opettajan ohjeet kurssin teko... 3 Kirjautuminen... 3 Kurssin

Lisätiedot

Tekstinkäsittelyn jatko. KSAO Liiketalous 1

Tekstinkäsittelyn jatko. KSAO Liiketalous 1 KSAO Liiketalous 1 Tyylien käyttö on keskeinen osa tehokasta tekstinkäsittelyä. Merkki- ja kappalemuotoilujen tallentaminen valmiiksi tyyleiksi nopeuttavat tekstinkäsittelyä; tekstin kirjoittamista ja

Lisätiedot

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä 2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Johdanto. Luku 1. jälkeen. Lähes kaikki nykyisin Unix-tyyppisten käyttöjärjestelmien päällä ajettavat graafiset käyttöliittymät pohjautuvat

Johdanto. Luku 1. jälkeen. Lähes kaikki nykyisin Unix-tyyppisten käyttöjärjestelmien päällä ajettavat graafiset käyttöliittymät pohjautuvat Luku 1 Johdanto Tämän oppimateriaalin tarkoituksena on johdatella lukija nykypäivän ohjelmointikieliin liittyvään moderniin asiakokonaisuuteen: graafiseen käyttöliittymään, erityisesti sen muodostamiseen

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Lisää suunnittelumalleja, laadusta, säännölliset lausekkeet Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 11. 3. 2013 Sisältö

Lisätiedot

Suunnittelumalleja, MVC. Juha Järvensivu 2008

Suunnittelumalleja, MVC. Juha Järvensivu 2008 Suunnittelumalleja, MVC Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tarkkailija Strategia Rekursiokooste Tehdas-metodi MVC Tarkkailija suunnittelumalli Tarkkailijamalli (Observer) Määrittelee olioiden

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

KÄYTTÖOHJE LATOMO VERSO

KÄYTTÖOHJE LATOMO VERSO Kirjautuminen Kirjatuminen järjestelmään tapahtuu syöttämällä ylläpitäjältä (yleensä sähköpostilla) saatu käyttäjätunnus ja salasana niille varattuihin kenttiin. Jos olet unohtanut salasanasi voit syöttää

Lisätiedot

Taulukot. 2002 Päivi Vartiainen 1

Taulukot. 2002 Päivi Vartiainen 1 Taulukot Taulukon lisääminen FrontPagessa tapahtuu samalla tavoin kuin Word tekstinkäsittelyohjelmassakin. Valitse vakiotyökaluriviltä Lisää taulukko painike. Kun olet napsauttanut painikkeen alas voit

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 6: Graasten käyttöliittymien ohjelmointia Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 29. 2. 2012 Sisältö 1 GUI-ohjelmointia

Lisätiedot