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



Samankaltaiset tiedostot
JAVA-OHJELMOINTI 3 op A274615

Osio 4: Graafinen käyttöliittymä

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

Osio 4: Graafinen käyttöliittymä

Dialogit. Juha Järvensivu 2008

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä

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

Olio-ohjelmointi Käyttöliittymä

JAVA-OHJELMOINTI 3 op A274615

Graafinen käyttöliittymä, osa 2

GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI JAVA SWING

Eclipse & WindowBuilder

Dialogit. Juha Järvensivu 2007

ESIKATSELU, TULOSTAMINEN, TUNNISTEET

Johdatus L A TEXiin. 7. Taulukot ja kuvat. Dept. of Mathematical Sciences

Johdatus L A TEXiin. 7. Taulukot ja kuvat. Dept. of Mathematical Sciences

Johdatus L A TEXiin. 8. Taulukot ja kuvat. Matemaattisten tieteiden laitos

Taulukot. 1. Taulukon rakenne: ICT01D Elina Ulpovaara

TAULUKOINTI. Word Taulukot

Javan GUI Scratchaajalle

Sisältö. 2. Taulukot. Yleistä. Yleistä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Java Swing. Juha Järvensivu 2008

Ohjelmoinnin peruskurssien laaja oppimäärä

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

Sisältö. 22. Taulukot. Yleistä. Yleistä

Tietorakenteet, laskuharjoitus 7,

QT tyylit. Juha Järvensivu 2008

Tee html-sivu, jossa on yllä olevat kaksi taulukkoa.

CSS-kielen avulla määritellään HTML-dokumentin tyyli. CSS avulla voidaan tarkemmin määritellä eri elementtien ominaisuuksia.

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ryhmäkirjeen hyödyntäminen

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

Muuttujien määrittely

Java ja grafiikka. Ville Sundberg

Word 2010 Pikaopas Hannu Matikainen Päivitetty:

TAULUKKO, KAAVIO, SMARTART-KUVIOT

Kuvat. 1. Selaimien tunnistamat kuvatyypit

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

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Taulukoiden käsittely Javalla

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Excel Perusteet Päivi Vartiainen 1

Javan perusteita. Janne Käki

QT model view. Juha Järvensivu 2008

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

valitsin on useimmiten html-elementti, jolle tyyli halutaan luoda

Mikä yhteyssuhde on?

Johdatus L A TEXiin. 8. Taulukot ja kuvat. Matemaattisten tieteiden laitos

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

1 Yleistä Web-editorista Web-editori -dokumentin luominen Pikatoimintopainikkeet Tallenna... 3

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

H6: Tehtävänanto. Taulukkolaskennan perusharjoitus. Harjoituksen tavoitteet

Visuaalinen analytiikka

Ohjelmointi 2 / 2010 Välikoe / 26.3

C# ja.net. Juha Järvensivu 2007

Taulukot Päivi Vartiainen 1

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Ohjelmointi Tunnilla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

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

IDL - datan sovitus. ATK tähtitieteessä. IDL - esimerkiksi linfit. IDL - esimerkiksi linfit

Ohjelmointi 5: Miinaharava

1. Lohkon korkeus ja leveys

Revit Architecture 2013 parametriset. komponentit. opetusmateriaali

Planssit (layouts) ja printtaus

Aine Määrä % happi hiili vety typpi ,6 kalsium ,4 fosfori 780 1,1

Graafisen käyttöliittymän ohjelmointi Syksy 2013

2. Käsiteanalyysi ja relaatiomalli

1 Funktiot, suurin (max), pienin (min) ja keskiarvo

MICROSOFT EXCEL 2010

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

2. Olio-ohjelmoinista lyhyesti 2.1

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

15. Ohjelmoinnin tekniikkaa 15.1

1. Taustatietoa näppäimistönkuuntelusta

Ohjelmoinnin jatkokurssi, kurssikoe

Työvälineohjelmistot KSAO Liiketalous 1

KUVAT. Word Kuvat

1. Miten tehdään peliin toinen maila?

15. Ohjelmoinnin tekniikkaa 15.1

CSS - tyylit Seppo Räsänen

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

Paikka-aikakaavio PlanMan Project

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Digitaalisen median tekniikat css tyylimääritykset jatkuu

Digitaalisen median tekniikat css tyylimääritykset jatkuu Harri Laine 1

HELIA 1 (11) Outi Virkki Tiedonhallinta

Ikkunointijärjestelmät

7. Näytölle tulostaminen 7.1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

UML ja luokkien väliset suhteet

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Sovelmat. Janne Käki

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

14. Hyvä ohjelmointitapa 14.1

Metodien tekeminen Javalla

Transkriptio:

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 pyrkivät noudattamaan minimikokoa maksimikoko setmaximumsize(dimension d) Useimmat Layoutmanagerit eivät huomioi maksimikokoa oletuskoko setpreferredsize(dimension d) Kertoo käyttöliittymäkomponentin optimaalisen koon

Komponentin sijainti void setlocation(int x, int y); void setbounds(int x, int y, int w, int h); Asettaa komponentin vasemman ylänurkan koordinaatit Kutsutaan yleensä layoutmanagerin toimesta

Layoutmanagerin asettaminen JPanel panel = new JPanel(); panel.setlayout(new FlowLayout()); panel.add( button1 ); panel.add( button2 );

LayoutManagereja 1. BorderLayout 2. FlowLayout 3. CardLayout 4. GridLayout 5. GridBagLayout 6. SpringLayout 7. BoxLayout

BorderLayout Jakaa ikkunan viiteen alueeseen Ikkunaa suurennettaessa CENTER-alueen komponentti kasvaa Oletuksena ContentPane-komponentilla PAGE_START LINE_START CENTER LINE_END PAGE_END

Komponentin lisääminen public void add(component comp, Object constraints) panel.add(button, BorderLayout.PAGE_START); PAGE_START CENTER LINE_START LINE_END PAGE_END (NORTH) (CENTER) (WEST) (EAST) (SOUTH) http://java.sun.com/j2se/1.5.0/docs/api/java/awt/borderlayout.html

Komponenttien välit BorderLayout.setVgap(int) Määrittää vierekkäisten komponenttien välisen etäisyyden BorderLayout.setHgap(int) Määrittää komponenttien välisen etäisyyden pystysuunnassa

FlowLayout Yksinkertaisin layoutmanageri Asettelee komponentit järjestyksessä vasemmalta oikealle ja ylhäältä alas JPanel-luokka käyttää oletuksena Käyttää komponenttien piirtoon niille määritettyä oletuskokoa (preferredsize) Comp1 Comp2 Comp3 Comp4 Comp5 Comp6

FlowLayout sethgap, setvgap setalignment(int a) LEFT Comp1 Comp2 RIGHT Comp1 Comp2 CENTER Comp1 Comp2 http://java.sun.com/j2se/1.5.0/docs/api/java/awt/flowla yout.html

CardLayout Mahdollistaa näytön jakamisen useiden komponenttien kesken Vastaava toiminto saadaan aikaiseksi käyttämällä välilehtikomponenttia (Tabbed panes)

CardLayout

CardLayout addlayoutcomponent(string name, Component comp); show(container parent, String name); http://java.sun.com/j2se/1.5.0/docs/api/java/ awt/cardlayout.html

GridLayout Järjestää komponentit grid-muotoon (riveihin ja sarakkeisiin) GridLayout(int rows, int columns) Jos komponenttien määrä ylittää asetetun solujen määrän, oletuksena sarakkeiden määrä kasvaa row = 0; rivien määrää ei ole rajattu column = 0; sarakkeiden määrää ei ole rajattu Vähintään toinen arvoista oltava 0 Comp1 Comp2 Comp3 Comp4 Comp5 Comp6

GridLayout Kaikki komponentit ovat saman kokoisia Ikkunan koon muutos muuttaa myös komponenttien kokoja Komponentit lisätään oletuksena rivi kerrallaan vasemmalta oikealle http://java.sun.com/docs/books/tutorial/uiswing/layout/grid.html

GridBagLayout Käytetään monimutkaisten layouttien yhteydessä, kun ikkunassa on paljon komponentteja Jakaa ikkunan riveihin ja sarakkeisiin Sarakkeet / rivit voivat olla eri levyisiä Yksittäinen komponentti voi sijaita usealla rivillä Yksi joustavimmista mutta monimutkaisimmista layoutmanagereista http://java.sun.com/j2se/1.5.0/docs/api/java/awt/gri dbaglayout.html

GridBagLayout

GridBagLayout

GridBagContraints Määrittelee miten komponentti käyttäytyy ikkunassa JPanel pane = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); pane.add(thecomponent, c);

GridBagContraints int gridx, gridy Kertoo mihin soluun komponentti sijoitetaan int gridwidth, gridheight Kertoo kuinka monta solua komponentille varataan tilaa

GridBagConstraints Anchor Asettaa komponentin sijainnin, jos komponentti on pienempi kuin sille varattu tila Button 1

GridBagContraints Fill Kertoo muutetaanko komponentin kokoa, jos komponentti eri kokoinen kuin sille varattu tila NONE Button 1 HORIZONTAL VERTICAL Button 1 BOTH Button 1

GridBagContraints ipadx, ipady Kertoo kuinka paljon ylimääräistä tilaa komponentille varataan minimikoko = comp.minimumwidth+ipadx insets Kertoo kuinka paljon ylimääräistä tilaa komponentin ympärille varataan Insets(int top, int left, int bottom, int right)

GridBagContraints weightx, weighty Arvo normaalisti välillä 0.0 1.0 Kertoo miten käytettävissä oleva tila jaetaan komponenttien kesken Button 1 (weighty = 0.33) Button 2 (weighty = 0.66)

BoxLayout Asettelee komponentit riviin tai sarakkeeseen Ottaa huomioon komponentin maksimikoon http://java.sun.com/docs/books/tutorial/uiswi ng/layout/box.html

BoxLayout

Box Lightweight-container, joka käyttää BoxLayout-objektia layoutmanagerina Box.createVerticalBox() Box.createHorizontalBox() Box.createVerticalStrut(int height) Luo näkymättömän kiinteänkokoisen komponentin

SpringLayout v1.4 Käytetään erityisesti GUI-builderien yhteydessä Erittäin joustava layoutmanageri, joka osaa emuloida muita layoutmanagereita http://java.sun.com/docs/books/tutorial/uiswi ng/layout/spring.html

SpringLayout

Layout - tutorial Java-layout tutoriaali http://java.sun.com/docs/books/tutorial/uiswin g/layout/visual.html Esimerkkejä layoutmanagerien käytöstä http://java.sun.com/docs/books/tutorial/uiswin g/layout/layoutlist.html

Layoutmanagerin valinta Jos halutaan komponentti joka venyy ikkunan kokoa muutettaessa ja ottaa itselleen kaiken saatavilla olevan tilan BorderLayout FlowLayout CardLayout GridLayout GridBagLayout SpringLayout BoxLayout

Layoutmanagerin valinta Halutaan näyttää vähän komponentteja niiden oikeassa koossa (preferredsize) BorderLayout FlowLayout CardLayout GridLayout GridBagLayout SpringLayout BoxLayout

Layoutmanagerin valinta Halutaan näyttää muutamia komponentteja rivi/sarakemuodossa. Kaikki komponentit ovat saman kokoisia. BorderLayout FlowLayout CardLayout GridLayout GridBagLayout SpringLayout BoxLayout

Layoutmanagerin valinta Halutaan esittää muutamia komponentteja rivi / sarakemuodossa, mutta komponentit ovat eri kokoisia. BorderLayout FlowLayout CardLayout GridLayout GridBagLayout SpringLayout BoxLayout

Layoutmanagerin valinta Monimutkainen layout, jossa paljon komponentteja BorderLayout FlowLayout CardLayout GridLayout GridBagLayout SpringLayout BoxLayout

Layoutmanagerit ja paneelit Panel-luokkien avulla on mahdollista käyttää samassa ikkunassa useita layoutmanagereja Paneeli voi sisältää toisia paneeleja Jokaiselle paneelille voidaan asettaa oma layout-manageri

Container - orientation setcomponentorientation(componentorie ntation o); ComponentOrientation LEFT_TO_RIGHT RIGHT_TO_LEFT UNKNOWN

Container - orientation

Oman layoutmanagerin luominen http://java.sun.com/docs/books/tutorial/uis wing/layout/custom.html Interface LayoutManager void addlayoutcomponent(string, Component); void removelayoutcomponent(component); Dimension preferredlayoutsize(container); Dimension minimumlayoutsize(container); void layoutcontainer(container);

Ikkunan toiminta ilman layout manageria Layoutmanageriksi voidaan asettaa null, jolloin ei käytetä lainkaan layoutamageria Dokumentaatio suosittelee layoutmanagerien käyttöä (eri ympäristöt, LAF) Komponentit piirretään niihin asetetttujen koon ja sijainnin mukaisesti

Lähteitä Java layout managers http://java.sun.com/docs/books/tutorial/uiswin g/layout/visual.html http://java.sun.com/docs/books/tutorial/uiswin g/layout/using.html