Olio-ohjelmointi Käyttöliittymä

Samankaltaiset tiedostot
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ä

Osio 4: Graafinen käyttöliittymä

Java ja grafiikka. Ville Sundberg

Metodien tekeminen Javalla

Osio 4: Graafinen käyttöliittymä

Teskstialue (JTextArea) ja Scrollaus (JScrollPane)

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Graafinen käyttöliittymä, osa 2

Mikä yhteyssuhde on?

Ohjelmoinnin peruskurssien laaja oppimäärä

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

Osio 4: Graafinen käyttöliittymä

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

Olio-ohjelmointi Javalla

Osio 4: Graafinen käyttöliittymä

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

Rajapinta (interface)

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Luokan sisällä on lista

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

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Java layoutit. Juha Järvensivu 2007

Ohjelmointi 2 / 2010 Välikoe / 26.3

Java UI-komponentit (JTable) Juha Järvensivu 2007

Listarakenne (ArrayList-luokka)

Ikkunointijärjestelmät

Harjoitustyö (TKO_2023)

JAVA-OHJELMOINTI 3 op A274615

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

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

HSMT TCP- ja UDP-soketeista

Java-kielen perusteet

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter

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

Graafinen käyttöliittymä, osa 1

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

Taulukoiden käsittely Javalla

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

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

public static void main (String [] args)

1 Tehtävän kuvaus ja analysointi

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

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

14. Poikkeukset 14.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Javan GUI Scratchaajalle

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Graafisen käyttöliittymän ohjelmointi

Graafinen käyttöliittymä, osa 3

Javan GUI Scratchaajalle

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

11. Javan valintarakenteet 11.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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

YHTEYSSUHDE (assosiation)

14. Poikkeukset 14.1

Graafisen käyttöliittymän automaattinen testaus

Poikkeustenkäsittely

9. Periytyminen Javassa 9.1

Rinnakkaisohjelmointi, Syksy 2006

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

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Javan GUI Scratchaajalle

<applet code="simpleaudioapplet.class" width=300 height=300>

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

9. Periytyminen Javassa 9.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Periytyminen (inheritance)

Javan GUI Scratchaajalle

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

7. Näytölle tulostaminen 7.1

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Eclipse & WindowBuilder

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

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Oliosuuntautuneita apletteja

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

13. Loogiset operaatiot 13.1

Metodien tekeminen Javalla

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

Ohjelmointityö 3. Mikko Laamanen

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

Lista luokan sisällä

Ehto- ja toistolauseet

Pino S on abstrakti tietotyyppi, jolla on ainakin perusmetodit:

Tietorakenteet, laskuharjoitus 7,

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Ohjelmointi 5: Miinaharava

Ohjelmointi 2, välikoe

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

Tietokantarakenteet, k2011 Niemistö, Jesse; m Viitanen, Lauri; Drinkkitietokanta

12. Näppäimistöltä lukeminen 12.1

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

7. Oliot ja viitteet 7.1

Javan perusteita. Janne Käki

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Poikkeusten ja tapahtumien käsittely

Transkriptio:

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 Layout-luokat (komponenttien sijoittelu) Tapahtumien käsittely java.awt.event Javalla 2

n AWT-komponentit periytyvät Component-luokasta Varsinaiset käyttöliittymäkomponentit n Button, Canvas, CheckBox, Choice, Label, List, Scrollbar, TextArea ja TextField n Container-luokat Voivat sisältää toisia AWT-komponentteja Window, alkeellinen ikkuna, jolla ei ole reunaviivaa, eikä siihen voi sijoittaa valikkoa Frame-luokka, sisältää reunaviivan, Java-sovelluksen pääikkuna Javalla 3

n Frame-ikkunaolion luonti import java.awt.*; public class IkkunaDemo_1 { public static void main(string [] args ){ Frame f = new Frame(" Ensimmainen ikkuna "); f.setsize(400, 300); //ikkunan koko f.setlocation(200,200); //paikka kuvaruudulla f.setvisible( true ); //ikkun näkyviin } } Javalla 4

n Ikkuna ei sisällä mitään toiminnallisuutta, ohjelma suljetaan painamalla Ctrl-c Javalla 5

n Komponenttien sijoittelumallit n Sijoittaminen tapahtuu add-metodilla n Container-oliolla on Layout Manager Sijoittelee komponentit ikkunaan sijoittelumallien mukaan FlowLayout, BorderLayout, GridLayout, CardLayout, GridBagLayout sekä kiintä sijoittelu FlowLayout on oletussijoitteluna Panel- ja Applet-luokila (komponentit peräkkäin vasemmalta oikealle) Sijoittelua voi muuttaa setlayout-metodilla Javalla 6

n Java Swing-käyttöliittymä n Käyttöliittymä komponentit johdetaan JComponentkomponentista import javax.swing.*; public class KaruIkkuna extends JFrame { public KaruIkkuna( ){ final int IKKUNAN_LEVEYS = 350; final int IKKUNAN_KORKEUS = 250; JFrame ikkuna = new JFrame(); ikkuna.settitle("aika karu ikkuna"); ikkuna.setsize( IKKUNAN_LEVEYS, IKKUNAN_KORKEUS ); ikkuna.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); ikkuna.setvisible( true ); } } Javalla 7

n Tapahtumien käsittely Hiirellä klikkaaminen Komentopainikkeen painaminen Hiiren liikkeet Näppäimen painaminen Ikkunan avaaminen/sulkeminen n Mahdolliselle tapahtumalle on ennakolta rekisteröity tapahtuman kuuntelija-olio n Tapahtuma syntyy tapahtumalähteessä n Tapahtuma-olion synnyttyä saa tapahtuman kuuntelijaolion tiedon Javalla 8

n Tapahtuma syntyy tapahtumalähteessä n Tapahtuma-olion synnyttyä saa tapahtuman kuuntelijaolion tiedon tapahtumasta (ns. callback) n Kuuntelijalla on metodi, joka suoritta tarvittavat toiminnot n Esimerkkiohjelma, jossa käyttäjältä kysytään maililukema ja ohjelma ilmoitta lukeman kilometreissä Javalla 9

import javax.swing.*; import java.awt.event.*; public class Ikkuna extends JFrame { private JPanel ruutu; private JLabel viestilabel1; private JTextField mailitkentta; private JButton laskenappula; private JButton lopetanappula; private final int IKKUNAN_LEVEYS = 310; private final int IKKUNAN_KORKEUS = 100; public Ikkuna( ){ settitle("mailit kilometreiksi muunnin"); setsize( IKKUNAN_LEVEYS, IKKUNAN_KORKEUS ); setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); rakennaruutu(); add( ruutu ); setvisible( true ); } Javalla 10

private void rakennaruutu(){ viestilabel1 = new JLabel("Anna etaisyys maileina: "); mailitkentta = new JTextField(10); laskenappula = new JButton("Laske"); laskenappula.addactionlistener( new NappulanKuuntelija()); lopetanappula = new JButton("LOPETA"); lopetanappula.addactionlistener( new NappulanKuuntelija()); ruutu = new JPanel(); ruutu.add( viestilabel1 ); ruutu.add( mailitkentta ); ruutu.add( laskenappula ); ruutu.add( lopetanappula ); } Javalla 11

private class NappulanKuuntelija implements ActionListener { public void actionperformed( ActionEvent e ){ String tapahtuma = e.getactioncommand(); if( tapahtuma.equals("laske")){ final double muunnosvakio = 1.609; String syote = null; double kilometrit; double mailit = 0; boolean ok = false; do{ try { syote = mailitkentta.gettext(); mailit = Double.parseDouble( syote ); ok = true; }catch(numberformatexception nfe ){ JOptionPane.showMessageDialog( null,"ei kelpaa yrita uudelleen "); mailitkentta.settext(""); return; } kilometrit = mailit * muunnosvakio; }while (ok); JOptionPane.showMessageDialog( null, syote+"mailia on"+kilometrit+"km"); mailitkentta.settext(""); } // if Javalla 12

if( tapahtuma.equals("lopeta")){ System.exit(0); } } } } n Main-metodi public class IkkunaOhjelmaMain_3 { public static void main( String [] args ){ Ikkuna iikkuna = new Ikkuna(); } } Javalla 13

n Käyttäjä syöttää luvun ja painnaa Laske-nappulaa Javalla 14

n Virhesyötteellä ohjema antaa virheilmoituksen Javalla 15