Graafinen käyttöliittymä, osa 3

Samankaltaiset tiedostot
Graafinen käyttöliittymä, osa 1

Graafinen käyttöliittymä, osa 2

Java Swing. Juha Järvensivu 2007

Java Swing. Juha Järvensivu 2008

JAVA-OHJELMOINTI 3 op A274615

GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI JAVA SWING

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä

Olio-ohjelmointi Käyttöliittymä

Javan GUI Scratchaajalle

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

Graafisen käyttöliittymän ohjelmointi

Teskstialue (JTextArea) ja Scrollaus (JScrollPane)

Java ja grafiikka. Ville Sundberg

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Ohjelmointi 5: Miinaharava

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

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

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

Rajapinta (interface)

Osio 4: Graafinen käyttöliittymä

Ohjelmoinnin peruskurssien laaja oppimäärä

Eclipse & WindowBuilder

Tapahtumapohjainen ohjelmointi

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

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

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

Ohjelmoinnin jatkokurssi, kurssikoe

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Mikä yhteyssuhde on?

Osio 4: Graafinen käyttöliittymä

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sovelmat. Janne Käki

14. Poikkeukset 14.1

Web järjestelmän ohjelmointi Kevät 2012 Hans Nieminen

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Olio-ohjelmointi Virhetilanteiden käsittely

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Harjoitustyö (TKO_2023)

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite

812347A Olio-ohjelmointi, X Reflektiivisyys

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Henkilökohtainen harjoitus: FASTAXON

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

14. Poikkeukset 14.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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

Interaktiivinen tarinankerronta

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Tietorakenteet, laskuharjoitus 7,

Web Services tietokantaohjelmoinnin perusteet

Harjoitus 2: Oppijan aktivointi ( )

P e d a c o d e ohjelmointikoulutus verkossa

Poikkeusten ja tapahtumien käsittely

JUnit ja EasyMock (TilaustenKäsittely)

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

4. Luokan testaus ja käyttö olion kautta 4.1

erasmartcard-kortinlukijaohjelmiston käyttöohje

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter

Osio 4: Graafinen käyttöliittymä

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Alkuehdot. Motivointi (1/2) Ohjelmointi II, kevät 2004 Kuopion yliopisto. Motivointi (2/2) (C) Mauno Rönkkö. Mitä tekee kutsupieninalkio(t, 10)?

C# Windows ohjelmointi perusopas

QT tyylit. Juha Järvensivu 2008

Tukipyyntö-toiminnon ohje

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

Olio-ohjelmointi Javalla

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1

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

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Poikkeustenkäsittely

JAVA-OHJELMOINTI 3 op A274615

15. Ohjelmoinnin tekniikkaa 15.1

1. Mitä tehdään ensiksi?

Osio 4: Graafinen käyttöliittymä

Luku 7 Uusien Mallien Tiedostot

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

Asiakirjojen ja valokuvien skannaaminen Canon Canoscan -skannerilla

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

TEM Rakennerahastot. Graafinen ohjeistus PowerPoint-pohja

Javan asennus ja ohjeita ongelmatilanteisiin

815338A Ohjelmointikielten periaatteet

Javan GUI Scratchaajalle

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Windowsin pikanäppäimet

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

1. HARJOITUS harjoitus3_korjaus.doc

Harjoitustehtävät ja ratkaisut viikolle 48

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

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

Sivu 1 / Viikin kirjasto / Roni Rauramo

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Nero Suunnitteludokumentti

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Transkriptio:

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 ActionEvent Tapahtumankuuntelijaluokassa määritetään, mitä tapahtuman syntyessä tehdään. Tapahtumankuuntelijaluokka toteutetaan usein anonyyminä sisäluokkana. Luokka toteuttaa ActionListener-rajapinnan. metodi actionperformed() Kuuntelijaluokka (yleensä anonyymi sisäluokka) rekisteröidään komponentin kuuntelijaksi

Hiiritapahtuman käsittely Hiiritapahtuman lähteenä on komponentti, johon liittyvää hiiren käyttöä tarkkaillaan esim JFrame, JLabel, Tapahtumaolio MouseEvent sisältää tietoa hiiren vaiheista esim getx(), gety(), getbutton() Tapahtumankuuntelijan on toteutettava soveltuva rajapinta MouseListener MouseMotionListener MouseWheelListener

MouseListener-rajapinta Viisi tapahtumankäsittelymetodia rajapinnassa MouseListener public void mousepressed(mouseevent e) public void mousereleased(mouseevent e) public void mouseclicked(mouseevent e) public void mouseentered(mouseevent e) public void mouseexited(mouseevent e)

MouseMotionListener- ja MouseWheelListener-rajapinnat Kaksi tapahtumankäsittelymetodia rajapinnassa MouseMotionListener: public void mousemoved(mouseevent e) public void mousedragged(mouseevent e) Yksi tapahtumankäsittelymetodi rajapinnassa MouseWheelListener: public void mousemoved(mousewheelevent e)

Sovitinluokat Rajapinnat MouseListener ja MouseMotionListener vaativat useiden metodien toteuttamisen. Sen sijaan, että tapahtumankuuntelija toteuttaisi ao. rajapinnan, se voidaankin periyttää ns. sovitinluokasta. Hiiren sovitinluokka on nimeltään MouseAdapter. Sovitinluokka sisältää tyhjät toteutukset em. rajapintojen metodeille. Soveltuvat hyvin käytettäviksi anonyymeinä sisäluokkina toteutettujen tapahtumankuuntelijoiden kanssa.

Esimerkki sovitinluokan käytöstä Koodiesimerkki HiirinappiGUI Koodiesimerkit ovat Tuubi-työtilassa (Dokumentit/Työtiedostot). Esimerkissä JPanel-komponenttiin sisältöpaneeli liitetään hiiren kuuntelija. Kuuntelijassa ylikirjoitetaan sovitinluokan metodi mouseclicked(). Muut sovitinluokan metodit jäävät oletusarvoisiin, tyhjiin toteutuksiinsa. Kuuntelija on toteutettu anonyyminä sisäluokkana. Kun anonyymi sisäluokka luodaan luokasta (kuten tässä), syntyy aliluokka. Kun anonyymi sisäluokka luodaan rajapinnasta (kuten ActionListener), syntyy sen toteuttava luokka.

Esimerkki Koodiesimerkki KuvapelinGUI Kuvapeli KuvapelinOhjain Seurataan hiiren liikkeitä valokuvan päällä (JLabel) Reagoidaan hiiren liikkeeseen: onko aarre löytynyt? Painikkeen painallus päivittää etäisyyden aarteeseen.

Valikot Valikoiden luominen selkiyttää käyttöliittymää keskikokoisessa ja suuressa sovelluksessa. Valikko (JMenu) Valikkorivi (JMenuBar) Vaihtoehto (JMenuItem)

Valikot Luo valikkorivi JMenuBar valikkorivi = new JMenuBar(); Luo valikko JMenu valikkoa = new JMenu( Tiedosto ); Lisää valikko valikkoriviin valikkorivi.add(valikkoa) Luo vaihtoehtoja vaihtoehtoa1 = new JMenuItem( Ensimmäinen vaihtoehto ); vaihtoehtoa2 = new JMenuItem( Toinen vaihtoehto );

Valikot Lisää vaihtoehdot valikkoon valikkoa.add(vaihtoehtoa1); valikkoa.add(vaihtoehtoa2); Lisää erotinviiva valikkoa.addseparator(); Lisää vaihtoehtoon toimintokomento. vaihtoehtoa1.setactioncommand( A1 ); Lisää vaihtoehdolle kuuntelija vaihtoehtoa1.addactionlistener(kuuntelija); Aseta valikkorivi tämän ikkunan (JFrame) valikkoriviksi setjmenubar(valikkorivi);

Esimerkki Valikkorivissä kaksi valikkoa. Yksi valikon vaihtoehto sisältää alivalikon. Yksi vaihtoehdoista on valintaruututyyppinen (JCheckBoxMenuItem) Koodiesimerkki ValikkoesimerkinGUI ValikkoesimerkinMalli ValikkoesimerkinOhjain

Look and Feel try { } UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName ()); catch (Exception e) { } System.out.println("Look and Feel - asetus epäonnistui.") Look and Feel määrää käyttöliittymän ulkoasun Laitteistoriippumaton (Java) Laitteistokohtainen esim. Windows Käsiteltävä viisi poikkeusta: ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookandFeelException ja ClassCastException