Kursusgang 12. Oversigt: Sidste kursusgang Layout-manager Event-håndtering. Design af brugerflader 12.1

Relaterede dokumenter
Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

Videregående programmering i Java

5. Teknisk beskrivelse af programmet 5.1 Programmets primære strukturer Datastruktur Datastruktur

how to save excel as pdf

Vejledning til at tjekke om du har sat manuel IP på din computer.

Help / Hjælp

Indhold Login flexsignage... 1 Rediger eksisterende layout... 1 Oprette et layout - template... 1 Oprette et layout tomt... 2 Designe layout...

Videregående programmering i Java

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

5 ARBEJDE MED EDITOREN

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

Hvad er Objekter - Programmering

Setup Guide Do It Now Work Smarter

Objects First with Java A Practical Introduction Using BlueJ

Brugermenuer og brugerdefinerede formularer

Nu skal vi især se på <font> og <center> samt centrering af hele siden på skærmen.

NR. 92 PDF-formularer med OpenOffice DEN 4. MARTS 2015

Genvejstaster i kapilel 6. IKON BETEGNELSE INDLAGT SKAL TILFØJES Set Auto Borders Indsætter færdigt tegnede kanter,

Boligsøgning / Search for accommodation!

Advanced Word Template Brugermanual

Skriftlig eksamen i Datalogi

Tips & Tricks nr. 92 PDF-formularer med OpenOffice til LUDUS Web

Vejledning Tabeller (data tabeller)

Teknisk dokumentation

Dannelse af PDF-dokumenter

Database for udviklere. Jan Lund Madsen PBS10107

Anvendelse af BPT til manuel test

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Orcad Layout kørekort. REV. 1.

For at få 3D-kommandoer til at virke skal AutoCAD LT 2002 først sættes op Vælg Start->Programmer->BYG-CAD>LTSetup

Region Syddanmark Guide til oprettelse og udsendelse af nyhedsbreve i Peytz Mail

StarWars-videointro. Start din video på den nørdede måde! Version: August 2012

Dannelse af PDF-dokumenter

NVivo-øvelser for PC. Når NVivo er åbent, kan importen ske på to måder:

3) Først og fremmest kan du vælge hvilket tema din side skal have.

Dannelse af PDF dokumenter

3 Tilføj printer "HP-GL/2 devices, ADI for Autodesk by HP" 5 Klik "Printer ikonet" - Print/Plot configuration

OPGAVE: WELOVEORGANIC.COM WEBSHOP

Formular modul. Sitecore Foundry juli Version 1.0

Introduktion til ActionScript, fortsat

Hvor er mine runde hjørner?

Penge til gode hos Gable Insurance. Tilbagebetaling af præmie

Get Skeleton. Boilerplate for Responsive, Mobile-Friendly Development

EA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning:

Kortforsyningen ArcGIS 9.0 SP2 - WMS Version 1.1.1

DM507 Algoritmer og datastrukturer

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

Vejledning til opbygning af hjemmesider

TINKERCAD - VEJLEDNING. af Mette Lynnerup & Peter Søgaard. VIA Center for Undervisningsmidler - Tinkercad Vejledning. Side 1/9

Vester Kopi A/S - Plotservice

Projekt i Programmering C Menu til hjemmeside.

Vejledning til LoggerPro med Newtons 2. lov på luftpudebane + LabQuest + Smart Pulley

Fase Forklaring Navigation. Mappen skal indeholde alle elementer til dit site.

Gem dine dokumenter i BON s Content Management System (CMS)

Statistik (deskriptiv)

Løsning af møntproblemet

Tips og Tricks. Erik Wendelboe Nielsen Christian Woergaard. econocap. PTC/USER Fredericia

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: APP: SMARTEYES PRO PORT: SecVision - Quick Manual v1.0

Vejledning i Opretning af formularer

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0

Digitaliseringsstyrelsen

Tilføjelse af LHC5020 til Fibaro Home Center

Projekt - Visual Basic for Applications N på stribe

LUL s Flower Power Vest dansk version

Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Indhold. Brugermanual

Manual CoffeeCup Visitkort konsulenter

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov.

Transkript:

Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering Design af brugerflader 12.1

Sidste kursusgang Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing: - Et stort antal komponenter - En mekanisme til håndtering af events - En manager til håndtering af layout Introduktion - Applets - En simpel komponent - En simpel event Design af brugerflader 12.2

Grundbegreber De grundlæggende komponenter til en GUI er JApplet, JFrame, JWindow og JDialog Disse komponenter producerer en Container, når vi bruger metoden getcontentpane() Denne container kan indeholde og vise komponenter Containeren har en metode setlayout(), som bruges til at vælge den ønskede layout-manager Design af brugerflader 12.3

Layout-managere Java Swing har en samling af layoutmanagere, som bestemmer layout et ud fra et standardskema og nogle tilhørende parametre Vi skal se på følgende layout-managere: - BorderLayout - FlowLayout - GridLayout - GridBagLayout - Boxlayout Design af brugerflader 12.4

BorderLayout (1) Vinduet deles op i fem områder: - Fire borders : North, South, West og East - Center Komponenter placeres med add() Design af brugerflader 12.5

BorderLayout (2) BorderLayout er default for en JApplet, så vi behøver ikke at kalde den Parametre uden angivelse af område placeres som default i Center Design af brugerflader 12.6

BorderLayout (3) Border-områderne får den størrelse, som er nødvendig i den ene retning og strækkes i den anden Center får resten Vinduerne til højre er alle lavet ved at trække i vinduet Design af brugerflader 12.7

FlowLayout (1) Komponenter placeres i den rækkefølge de sættes ind med add() Fra venstre mod højre og fra op mod ned (rækkevist) Hvis vi bare ændrer Border til Flow i det foregående program fås dette layout Design af brugerflader 12.8

FlowLayout (2) Alle komponenter får den mindst mulige størrelse, som er nødvendig Design af brugerflader 12.9

FlowLayout (3) Når vinduet ændrer facon, flyttes komponenterne rundt Design af brugerflader 12.10

GridLayout Skaber en tabel med et valgt antal rækker og søjler Komponenterne fyldes i fra venstre mod højre (rækkevist) Design af brugerflader 12.11

GridBagLayout Den mest komplekse layout-manager Giver fuld kontrol Eksempel i Swing-dokumentation Design af brugerflader 12.12

BoxLayout (1) Nogle af de samme egenskaber som GridBagLayout men meget enklere Placering af komponenter styres enten horisontalt (X_AXIS) eller vertikalt (Y_AXIS) Bemærk: containeren er parameter til konstruktoren Design af brugerflader 12.13

BoxLayout (2) Der er en container Box, der bruger BoxLayout som sin layout-manager Den kan bruges til at generere layouts, hvor der er styr på mellemrum og indbyrdes placering Dette kaldes strut og glue Der kan også defineres et RigidArea, som er baseret på absolutte værdier Design af brugerflader 12.14

Sammenligning Design af brugerflader 12.15

Eksempel: FlightReservation 1. A text field labeled "Date:", a combo box labeled "From:", and a combo box labeled "To:" must reside at the top of frame. Labels must be placed to the left side of their corresponding component. The text field and combo boxes must be of equal size, reside in a column, and occupy all available width. 2. A group of radio buttons titled "Options" must reside in the top right corner of the frame. This group must include "First class", "Business", and "Coach" radio buttons. 3. A list component titled "Available Flights" must occupy the central part of the frame and it should grow or shrink when the size of the frame changes. 4. Three buttons titled "Search", "Purchase", and "Exit" must reside at the bottom of the frame. They must form a row, have equal sizes, and be center-aligned. Design af brugerflader 12.16

Design af brugerflader 12.17

Design af brugerflader 12.18

Design af brugerflader 12.19

Design af brugerflader 12.20

Design af brugerflader 12.21

Eksempel: resultat Design af brugerflader 12.22

Eksempel: to andre varianter Design af brugerflader 12.23

Event -håndtering Grundide: en komponent kan fyre en hændelse (event), når der gøres noget bestemt ved den For eksempel at brugeren klikker på musen Hver hændelse har sin egen klasse Hver komponent understøtter bestemte af disse hændelser Når en hændelse fyres, kan den modtages den af en eller flere lyttere (Listener-objekter) Listener-objektet kaldes også event handleren Button ActionEvent ActionListener // kode til håndtering // en event Design af brugerflader 12.24

Listener-objekt Swing håndterer fyringen. Programmøren skal (bare) lave det listener-objekt, som skal modtage en given hændelse Dette objekt skal registeres som lytter i tilknytning til den relevante kilde til hændelsen (addxxxlistener) Her registreres bl som listener objekt på begge objekterne b1 og b2 Design af brugerflader 12.25

Event-håndtering I erklæringen af Listener-klassen angives det, at den enten implementerer en ActionListener (eller udvider udvider en klasse, der implementerer en ActionListener) I Listener-klassen defineres den eller de metoder, som realiserer håndteringen. Det er denne kode, der reagerer på den givne hændelse Her er det en hændelse af klassen ActionEvent Design af brugerflader 12.26

Definering som inner class Et listener-objekt defineres ofte ved hjælp af en anonym inner class Det betyder, at klassen ikke behøver at blive navngivet I eksemplet kaldes den ButtonListener Design af brugerflader 12.27

Navne på elementer (1) For hver komponent kan vi finde, hvad den undersøtter (se side 794-796): - Events - Listener-klassens navn - Add og remove metoderne Eksempel: for en JScrollbar: - AdjustmentEvent - AdjustmentListener - addadjustmentlistener( ) - removeadjustmentlistener( ) For Listener-klassen har vi også brug for at kende de metoder, der skal defineres (se side 799-800) Eksempel: for AdjustmentListener: - adjustmentvaluechanged(adjustmentevent) Design af brugerflader 12.28

Navne på elementer (2) Hvis vi bruger en Listener skal vi definere alle metoder Hvis vi kun har brug for en af dem, er dette besværligt Derfor har nogle listener-klasser, som har flere metoder, også en adapter, der definerer tomme metoder For eksempel ComponentAdapter for ComponentListener Man behøver så bare at overskrive de metoder, der er relevante for ens opgave Design af brugerflader 12.29

Status Detaljeret gennemgang af layout-håndtering og de mest gængse layout-managers Detaljeret gennemgang af event-håndtering Næste gang: Komponenter i Swing Arkitektur for en GUI Design af brugerflader 12.30