Design och konstruktion av grafiska gränssnitt

Relevanta dokument
Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Objektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit

Arvshierarki. Object. Bostadshus. Flerfamiljshus. Villa

Design och konstruktion av grafiska gränssnitt

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

Arv. Grafiska komponenter. Arv. Arvhierarki. Arv. Föreläsning 12 (OH-bilder 9)

Föreläsning 9. Arv Grafiska komponenter

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Grundläggande teori för användargränssnitt,del 2

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Vad utmärker ett bra gränssnitt?

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

Föreläsning 7. Grafiska användargränssnitt

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

LiTHehack? Här? lithehack se koma Tisdagar och torsdagar

Interaktionsdesign, grundkurs INTERAKTION 1

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

1 Grafiska komponenter

Föreläsning 9. Arv Grafiska komponenter. Arv. Arv. Implementationsarv

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Microsoft Windows 8 Grunder

Macromedia. Flash 8 Grundkurs.

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Java Direkt, upplaga 6 Innehåll

Java Direkt, upplaga 7 Innehåll

Java Direkt, upplaga 5 Innehåll

Design och konstruktion av grafiska gränssnitt

27. GUI Programming. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

Föreläsning 10. ADT:er och datastrukturer

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Lära känna skrivbordet

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

725G61 - Laboration 8 Ett enkelt GUI. Sahand Sadjadee och Johan Falkenjack

Föreläsning Arv. Föreläsning 9. Arv Grafiska komponenter. Grafiska komponenter. Arv. Arv

Microsoft Windows 10 Grunder

Java Direkt, upplaga 8 Innehåll

1284_omslag.qxd :13 Sida 1 ECDL START OFFICE 2003 Allmän IT Windows XP Word 2003 Outlook 2003

Design och konstruktion av grafiska gränssnitt

Boken. OBS! Konkret interaktion är inte bokens starka sida. OBS! Jag har skrivit fel kapitel i kursprogrammet Uppdaterad version kommer.

WINDOWS 8.1. Grunder

Låt ipad bli fjärrkontroll för din Mac

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. Exempel på några av komponenterna. LayoutManagers.

CliMate följer Tre-lager-arkitektur. Domänobjekt - domänlogiklagret. Viktiga domänklasser i CliMate. De tre lagren. Paketen i CliMate:

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Klasser för grafik och bildhantering

Software Translator 6.1 Manual

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? Exempel på några av komponenterna. LayoutManagers.

Java-concept och Swing. Swing low, sweet chariot

Nya Medier. Gränssnitt, Interaktivitet och Digital kod

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna.

I högskolans nätverk hittar du programmet PowerPoint genom Startmenyn, Huvudmeny XP, Kontorsprogram, Microsoft Office, Microsoft PowerPoint.

Lathund till PsycINFO (OVID)

Kommandobaserad interaktion

Så här använder du P-touch Transfer Manager

MagniLink imax. Bruksanvisning. Version 1.0. Bruksanvisning MagniLink imax 1

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

ViTex snabbguide. 1. Inläsning till ViTex från scanner eller PDF Läs in text via scanner Läs in text från en JPEG-bild eller ett PDF-dokument

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Arv och Grafiska Användargränssnitt

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Kom igång med Windows 8.1

Arbeta effektivare med OS X

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL:

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Så får du maximal nytta av Evernote

Användarmanual för nya funktioner

Laboration 2 RSS Läsare

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

Manual för version V2

Vad utmärker ett bra användargränssnitt?

Hi-Fi Prototyping + laborationsgenomgång & verktyg

Användarmanual till AD OnLine

Migrera till Word 2010

Malmö högskola 2007/2008 Teknik och samhälle

Objektorienterad programmering

OOP Objekt-orienterad programmering

Interaktion 1. Dagens föreläsning. Interaktionsmodeller

Manual. Användargränssnitt

Dagens föreläsning. Interaktionsmodeller Typer av användargränssnitt Översikt, orientering, navigering Felhantering

Spel som interaktiva berättelser

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

SDC Web-Access. Installationsanvisning v 2.0.2

Tillgänglighetskrav på teknik Dessa krav baseras på WCAG 2.0,

Webbteknik för ingenjörer

Region Skåne Verksamhetsledningssystem (VLS)

EndNote online. T5 ht 2015 Therese Nilsson/Camilla Persson

Utbildningskatalog för NK Kommunikation

Flexibel meny i Studentportalen

Objektorienterad Programkonstruktion

Transkript:

Design och konstruktion av grafiska gränssnitt Olof Torgersson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Kort GUI-historia Swings komponenter Idag Lab 1 glöm inte att lämna in i PingPong också Först en liten film 1

Funnits länge? Vad är ett GUI? Graphical User Interface Typ visuell presentation av "verkligheten", där man interagerar med systemet via knappar/menyer/navigationsverktyg genom att manipulera dessa direkt på skärmen (i motsats till via text ) WIMP Window Icons Menu Pointing device 2

Naturligt? GUI klart dominerande metoden för interaktion med datorer Inlärt begrepp/beteende Funkar för att man följer konventioner Några alternativ Tal Gester Fysiska artefakter Skriven konversation Utvecklingen kunde varit annorlunda - film GUI-HISTORIA 3

1984 Sladdkopplingar Hålkort Teleprinter Skärm + kommandon Pre-GUI 4

Douglas Engelbart 1925-2013, pionjär för GUI Ville stödja människans intellekt Tänkte sig ett system där man direkt interagerade med en grafisk representation Sökte patent för musen 1967 The Mother of All Demos 1968 visade Engelbart och hans team sitt system NLS Interaktion med mus Flera fönster Hyperlänkar Videokonferens Kan ses på internet (länk under resurser) Utdrag 5

Xerox PARC Grundat 1970 Xerox rädda för papperslösa kontoret Anställde forskare och lät dem göra vad de ville 1973 Xerox Alto Bitmappad display 606x808 6

Ca 1974 Programmeringsspråk och omgivning Objektorienterat MVC Minneshantering. Smalltalk 1981 Alto + Smalltalk Nätverk E-post I princip som idag 17 000 dollar (113 000kr) flopp Xerox Star 7

Mer Xerox Star Några principer Se och peka Uniform design över program What You See Is What You Get Apple Grundat 1976 av Steve Jobs och Steve Wozniak Besökte PARC och lånade idéer Apple Lisa 1983 Som en Mac 10 000 dollar 67 000kr Flopp 8

Apple Lisa En dator för alla 2 495 dollar 16 700kr 9-tums skärm 512 * 384 128k minne Ingen multi-tasking Floppy-drive Reklam Framgång The rest is history Ex The Mac 9

Desktop GUI skapades för kontor hur hade det kunnat se ut annars? Skrivbord Mappar Dokumenthantering 1983 Första GUI för IBM PC Försvann Visi On 10

Windows 1985 Största skillnad menyer på varje fönster Tiled windows från början Windows 2.0 1987 Apple stämde MS för look and feel 11

Andra Det fanns en del andra system under 80-talet NextSTEP 1988, Unix + snyggt GUI. Mac OS X:s bas 12

X Windows Först utvecklat på MIT, mitten av 80-talet (bild ca 1990) Basen i Linux Microsofts första riktiga GUI Oerhörda säljsiffror Task bar Visuella element från NextSTEP Windows 95 13

Mac OS X Introducerat 2001 Unix + GUI 90+ Många försvann I princip bara Windows och Mac kvar Windows nära slå ut Mac helt Apple tog över Next 1997 (eller tvärtom) 2001 Mac OS X (NextSTEP 5) Unix-bas Viss återhämtning för Mac Egentligen inte mycket nytt sen 80-talet Webb GUI-mässigt kanske ett steg tillbaka initialt Linux? 14

Ett försök till något annat 15

2007- iphone introduktion Stort genomslag för touch-gränssnitt 27 januari 2010 ipad introduktion Stort genomslag för plattor/tablets Element från touch-ui:s återspeglas i desktop OSX Lion 2012 Windows 8 Ett system för allt? PC Plattor Mobile? Windows 8 Metro 2 VISUELLA TRENDER 16

Skeumorphism A skeuomorph /ˈskjuːəәmɔrf/ [skyoo-uh-mawrf], or skeuomorphism (Greek: skeuos, σκεῦος vessel or tool, morphê, μορφή shape), is a design element of a product that imitates design elements that were functionally necessary in the original product design, but which have become ornamental in the new design. Apple Trend Nämns t ex i ios guidelines 17

2016-01-21 Bra? Silly or nice? http://skeu.it Minimalism Windows 8 sätter trenden Platta rutor grejen 18

2016-01-21 Exempel Exempel 19

2016-01-21 Non GUI Non GUI 20

Och vinnaren är Platt design 21

Ännu plattare Avskalning 22

Materialkunskap GUI:n byggs upp av komponenter Givna användningsområden Fel förvirrar Java Swing Designat för att kunna bygga riktiga GUI:n Innehåller de flesta vanligt förekommande gränssnittskomponenterna Dessa är byggstenar Måste veta vilka som finns och vad de passar till Använda dem så som det förväntas Windows, Linux, Mac har ungefär samma komponenter 23

Plattformsoberoende Kan köras på Windows, Linux, Mac Olika utseende Delvis olika förväntade beteenden Hur funkar det? Plattformar har olika Look & Feel Windows l&f Aqua l&f Eller samma Java Swing på alla plattformar Metal l&f Nimbus l&f Exempel MedView archetype Viewer Välja l&f För riktiga program behöver man välja l&f System Java (Metal) System når typiskt inte ända fram Finns diverse tredjepartsalternativ för att komma närmare Troligen bästa för hemanvändare etc Java ser fel ut på alla plattformar Funkar för affärssystem etc Ett dominerande program Byta i NetBeans Application.lookAndFeel = javax.swing.plaf.metal.metallookandfeel 24

UI Guidelines Alla plattformar har User Interface Guidelines Swing också Använda dessa eller plattformsguidelines? Del av GUI-designerns verktygslåda Hjälp med detaljer snarare än interaktionsdesign Behövs för riktiga applikationer Länkar finns på kurshemsidan Mera Swing MVC nämns ofta Swing snarare Separable Model View-Controller ihop Model för sig Man kan byta look&feel utan att påverka modellen Man kan byta modell utan att påverka look&feel För enkla komponenter som JButton behöver man inte bry sig om modellen Motsatsen gäller för t ex JTree, JTable En applikation kan ha en MVC-modell ändå 25

Components & Containers De block GUI:s byggs av Går igenom alla snabbt Sen anses man känna till dessa När man ska designa måste man veta vad som finns Inkluderar vissa saker från Swing UI Guidelines Alla Containers är Components Components kontroller Containers behållare för Components En Component måste finnas i en Container för att synas Swing-klasser JApplet JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComponent JDesktopPane JDialog JEditorPane JFileChooser JFormattedTextField JFrame JInternalFrame JLabel JLayeredPane JList JMenu JMenuBar JMenuItem JOptionPane JPanel JPasswordField JPopupMenu JProgressBar JRadioButton JRadioButtonMenuIt em JRootPane JScrollBar JScrollPane JSeparator JSlider JSpinner JSplitPane JTabbedPane JTable JTextArea JTextField JTextPane JTogglebutton JToolBar JToolTip JTree JViewport 26

Visuellt Visuellt 2 27

Top-Level Containers JFrame JApplet JWindow JDialog Containers JPanel Används för att gruppera andra components JRootPane JFrame Applikationers huvudfönster Menyrad Ofta toolbar Rekommenderad titel Dokumentnamn Programnamn 28

JDialog Sekundära fönster Ingen menyrad Rekommenderad titel Beskrivande namn optional programnamn JMenuBar Menyrad- hanteras bra av NetBeans Några guidelines Använd bara ett ord i varje menytitel Använd välkända/standardbegrepp (Arkiv) Inkludera mnemonics Använd inte för sekundära fönster 29

JMenu Hanteras bra av NetBeans Ha inte samma namn på någon flera ggr Undvik mer än en nivå Leta igenom ska gå fort JMenuItem Enskilda objekten i en meny Ha inte samma namn på något item som på menyn Undvik flera nivåer Kan ha ikoner. Hjälper användare att komma ihåg vad toolbarbuttons gör Kortkommandon Allt kan göras i NetBeans utan kod 30

JSeparator Huvudsakligen för att gruppera menu-items JCheckBoxMenuItem Använd sparsamt Syns bara när menyn är framme Bättre än toggle-menyer Menyer som byter text 31

JRadioButtonMenuItem 1-av-flera-val Använd JSeparator ovanför/nedanför för att visa vilka som hör ihop Kallas vanligen kontextmeny Alla vet nog hur det funkar JPopupMenu Aldrig huvudmetoden att utföra en handling! 32

JToolBar För vanligt förekommanden kommandon Förekommer både med och utan labels Det man kan göra ska alltid finnas med i programmets menyer Förse alla knappar med tooltips ORGANISERA INNEHÅLL 33

JScrollPane För något som inte får plats Listor, tabeller, textdokument placeras typiskt i scrollpanes Automatiskt i NetBeans Standard visa bara vid behov Rekommenderas Horisontella tveksamma för t ex text JPanel Allmän container för att organisera saker Här en röd med ett par blå i Bygga upp GUI hierarktiskt Behövs för allt utom de enklaste GUI I NetBeans blir det väldigt svårt att få önskade placeringar om man inte bygger upp med flera paneler 34

Dela upp i justerbara ytor Horisontellt eller vertikalt Kan nästas Kan styra fördelning weight Kan ha snabb-knappar onetouchexpandable JSplitPane JTabbedPane Mycket info på liten yta Relaterat men utan inbördes kopplingar Kan göras i NetBeans Inte fler än att en rad räcker Headline capitalization Tool tips 35

JLayeredPane Flera lager på varandra Se Swing Tutorial Öppnar möjligheter snarare än att vara standardkomponent Properties Alla Swing-komponenter har mängder av properties Kan sättas i NetBeans Experimentera Demo JTabbedPane JButton JLayeredPane Bilder i NetBeans (L&F) 36

VISA INFO JLabel Visa info för användare Unselectable Bild Text Bild + text HTML Ritar inte sin bakgrund som standard setopaque(true) Property i NetBeans 37

JToolTip Behöver man inte programmera direkt Ofta bra för användaren Stödjer utforskande Vet man trycker man innan de visas acomponent.settooltiptext( En text );; Alla komponenter Property i NetBeans JProgressBar Om man blockerar interaktion under en tidsperiod bör man alltid visa en progressbar och erbjuda möjlighet att avbryta 38

BASIC CONTROLS JButton Standard action-grej Kan konfigureras på olika sätt Mnemonics Icons Text Borders 39

On/Off Oberoende Grupperade JToggleButton JCheckBox & JRadioButton Välkända Enval/flerval 40

JList Ett sätt att välja något Kan ha flera olika selection-varianter JListModel och JListSelectionModel Icke-statiska ger ofta behov av att anpassa modellen Single-selection i labben? Kod för att ordna och sortera finns i lab1backend Hanterar listans model JComboBox Redigerbara och icke-redigerbara Tar lite plats Kan användas i toolbars Ha inte för många items! Vanligt T ex JList bättre Eller filtrering Data från modell 41

Mata in en rad text actionperformed vid retur Varianter JFormattedTextField JPasswordTextField Relaterade JSpinner JComboBox JTextField JTextArea Flera rader oformatterad text En rad JTextField Placeras ofta i en JScrollPane 42

JSlider & JSpinner Input av data med begränsningar KOMPLEXA 43

JTree Strukturerad data Kan anpassas på många sätt Kräver ofta justerad kod/modell Inte för datorovana Tabellformad data Anpassningsbar Modell JTable 44

JEditorPane & JTextPane Formatterad text Kräver sin egen genomgång Komponent man kan placera varsomhelst Stöd för dialog JColorChoser 45

Open Save Bibliotek eller inte Filtyper JFileChooser Att göra Läsa historia, länkar på hemsida -> resurser Känna till samtliga Swing-komponenter Göra klart lab 1 Börja lab 2 om man vill 46