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

Arvshierarki. Object. Bostadshus. Flerfamiljshus. Villa

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

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

Föreläsning 9. Arv Grafiska komponenter

Design och konstruktion av grafiska gränssnitt

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

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

Design och konstruktion av grafiska gränssnitt

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

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

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

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

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

1 Grafiska komponenter

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

Design och konstruktion av grafiska gränssnitt

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

Java Direkt, upplaga 6 Innehåll

Java Direkt, upplaga 7 Innehåll

Java Direkt, upplaga 5 Innehåll

Om användare och designprocessen

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

Design och konstruktion av grafiska gränssnitt

Lite info först. Kom ihåg! Deadline på lab1 på onsdag. Övning 2 på onsdag: gör en kalender för olika slags användare

Design och konstruktion av grafiska gränssnitt

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

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

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

Design och konstruktion av grafiska gränssnitt

Java Direkt, upplaga 8 Innehåll

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

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

Design och konstruktion av grafiska gränssnitt

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

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Java-concept och Swing. Swing low, sweet chariot

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

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

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

OOP Objekt-orienterad programmering

Vad utmärker ett bra gränssnitt?

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Klasser för grafik och bildhantering

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Design och konstruktion av grafiska gränssnitt

Objektorienterad Programmering DAT043. Föreläsning 6 30/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Arv och Grafiska Användargränssnitt

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

Windows Forms Winstrand Development

Design och konstruktion av grafiska gränssnitt

Efterhand fick vi ett system som vi tyckte var väl anpassat. Vi renskrev kladden (nedan) och började programmera menyerna.

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

Design och konstruktion av grafiska gränssnitt

MVC-mönstret. model-view-control i Swing

OOP Objekt-orienterad programmering

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

Hi fi prototyping. Johanna Persson MAM nov 2014

Observer Pattern och MVC. Objekt-orienterad programmering och design Alex Gerdes, 2016

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Granskning av gränssnitt. Mattias Arvola

The Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition.

Visa stora ikoner utan text i Command Manager = Större arbetsyta

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Tangible interaction &TUI KIRSTEN RASSMUS-GRÖHN

Projekt 2 XL. Observer-mönstret

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

Objektorienterad Programkonstruktion

Laboration 3 GUI-programmering

Grafiska användargränsnitt i Java. Föreläsning 7 Innehåll. Använda klasspaketet Swing. Klasspaket i Java. Grafiska användargränsnitt i Java

Människa-Datorinteraktion

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering

Design och konstruktion av grafiska gränssnitt

Observer Pattern och MVC. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Design och konstruktion av grafiska gränssnitt

Föreläsning 15: Repetition DVGA02

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

NYHETER I AUTOCAD LT 2008

MER Java Foundation Classes (JFC)

Macromedia. Flash 8 Grundkurs.

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Föreläsning 9: Gränssnitt och webbdesign

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

Föreläsning 4, Användbarhet, prototyper

Kursplanering Utveckling av webbapplikationer

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Layout och Navigation

Visuell GUI Testning

Transkript:

Design och konstruktion av grafiska gränssnitt Olof Torgersson Interaktionsdesign Data- och informationsteknik Chalmers/GU 1!

Idag! Swings GUI-komponenter! Om användare Upplägg! Föreläsningar! Obligatoriska övningar! Labbar!Utförs i par! Projekt!Utförs i grupp om 4! Tenta! Betyg sammanvägning av projekt och tenta!lab och övning inget betyg bara G! Alla moment måste genomföras 2!

Interaktionsdesignspraxis! Fastställ behov och krav! loop!utveckla alternativa designförslag!bygg interaktiva prototyper för kommunikation and analys!utvärdera designen baserat på prototyperna! end loop Interaction Designer! Viktiga färdigheter!arbeta i team!designpraxis och erfarenhet! IT-material!Vad kan man göra?! Interface design!designmetoder!prototyping! Skissa! Mjukvara! Hårdvara (sensors and actuators)! Fysiska material!utvärderingsmetoder 1 2 3 4 Graphical Interfaces Design Methods Analysis Methods Human Centred Design Course Physical Computing Ubiquitous Computing Interaction Design Project 3!

Material! The applications that are easy to use are designed to be familiar!tidwell xiii! Viktigt för framgång!känna användarna!kunna sina GUI-idiom!Kunna sin verktygslåda! Swing!Kunna sina mönster! Tidwell 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å det som förväntas! Windows, Linux, Mac har ungefär samma komponenter 4!

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å 5!

Components & Containers! De block GUI:s byggs av! Går igenom alla snabbt! Sen anses man känna till dessa! 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 JCheckBoxMenuIte m 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 6!

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

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 8!

JMenu! Hanteras bra av NetBeans! Ha inte samma namn på någon flera ggr! Undvik mer än en nivå JMenuItem! Ha inte samma namn på något item som på menyn! Undvik flera nivåer! Måste man ha flera nivåer så skapas de med JMenu! Kan ha ikoner. Hjälper användare att komma ihåg vad toolbarbuttons gör! Kortkommandon! Allt kan göras i NetBeans utan kod 9!

JSeparator! Huvudsakligen för att gruppera menu-items JCheckBoxMenuItem! Använd sparsamt!syns bara när menyn är framme! Bättre än toggle-menyer 10!

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

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 12!

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 13!

JSplitPane! Dela upp i justerbara ytor! Horisontellt eller vertikalt! Kan nästas! Kan styra fördelning!weight! Kan ha snabb-knappar!onetouchexpandable 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! Nästa inte! Tool tips 14!

JLayeredPane! Flera lager på varandra! Se Swing Tutorial! Öppnar möjligheter snarare än att vara standardkomponent VISA INFO 15!

JLabel! Visa info för användare! Unselectable! Bild! Text! Bild + text! HTML! Ritar inte sin bakgrund!setopaque(true) JToolTip! Behöver man inte programmera direkt! Ofta bra för användaren!utforska!vet man trycker man innan de visas! Component.setToolTipText( En text ); 16!

JProgressBar! Om man blockerar interaktion under en tidsperiod bör man alltid visa en progressbar och erbjuda möjlighet att avbryta BASIC CONTROLS 17!

JButton! Standard action-grej! Kan konfigureras på olika sätt! Mnemonics! Icons! Text! Borders! JToggleButton! On/Off! Oberoende! Grupperade 18!

JCheckBox & JRadioButton! Välkända JList! Ett sätt att välja något! Kan ha flera olika selection-varianter! JListModel och JListSelectionModel! Icke-statiska ger ofta behova av att anpassa modellen! Single-selection i labben?!kod för att ordna och sortera finns i lab1backend 19!

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 JTextField! Mata in en rad text!actionperformed vid retur! Varianter!JFormattedTextField!JPasswordTextField! Relaterade!JSpinner!JComboBox 20!

JTextArea! Flera rader oformatterad text!en rad JTextField! Placeras ofta i en JScrollPane JSlider & JSpinner! Input av data med begränsningar 21!

KOMPLEXA JTree! Strukturerad data! Kan anpassas på många sätt! Kräver ofta justerad kod/modell! Inte för datorovana 22!

JTable! Tabellformad data! Anpassningsbar! Modell! JEditorPane & JTextPane! Formatterad text! Kräver sin egen genomgång 23!

JColorChoser! Komponent man kan placera varsomhelst! Stöd för dialog JFileChooser! Open! Save! Bibliotek eller inte! Filtyper 24!

Användare och mål! Lär känna användarna för de är inte (som) du! GUI:t designar konversationen mellan människan och program! Användning har ett mål!köpa en resa!skriva en uppsats!få underhållning!samverka socialt!sköta affärer!hålla sig uppdaterad! Användares egenskaper! Gamla?! Unga?! Nyfikna?! Trötta! Kunniga?! Envetna?! Tvingade?! Bakgrund?! Expert?! Nybörjare?! Enda säkra!olika och ofta perpetual intermediate 25!

Typer av applikationer! Nybörjare, tillfälliga användare!informationskiosker!inköp on-line!försäljningsautomater!installeringswizards!! Experter!Photoshop!NetBeans!Sys-adminverktyg!World of warcraft!! Väldigt olika förutsättningar forts! Varken eller, dvs mittimellan!office!e-post-program!webbläsare!mobilapplikationer! Många program hamnar i denna kategori. Måste välja baserat på användare och deras mål. 26!

Aktivitet! Vilken användare är du?! Fundera på nybörjare-expert-mittimellan! Hitta ett eller flera program ur varje kategori där ni passar in själva Lära känna användarna! Basen för all interaktionsdesign! Samma person har inte samma mål med olika program! Typiska saker att undersöka!användarnas mål med att använda mjukvaran!de speciella uppgifter de utför för att uppfylla målen!vokabulär de använder för att beskriva vad de gör!hur bra de är på att använda liknande program!deras attityder till det de ska utföra! 27!

Några metoder! Direktobservation!Observera och tala med användarna på plats.!intervjuer!ger sammanhang.! Enkäter!Mycket information.!missar direktkommunikationsinformation!översikt över det man faktiskt frågar om! Personas!Sammanställning av viktigaste egenskaperna i en fiktiv person Några patterns Eller snarare allmänna egenskaper som är önskvärda! (1) Safe Exploration! Kunna trycka runt utan oönskade effekter! Inte bara allvarliga utan även enkla irritationsmoment! (2) Instant Gratification! Belöna användarna! Gör första stegen enkla (visa rätt dokument/skärm)! Inga störande inledande registreringsformulär, förklaringar, reklamskärmar etc! Tar bort fokus 28!

forts! (3) Satisficing! Satisfying+sufficing! Typ bra nog. Väljer hellre bra nog än att lära sig ordentligt! Stöd utforskande, var tydlig! (4) Changes in Midstream! Man ändrar sig eller kommer in på ett sidospår! Stöd detta! Global navigation! Komma ihåg tidigare angivna värden! forts! (5) Deffered Choices!Tvinga inte användarna fylla i massa information för tidigt! Registreringsformulär! Tonart, tempo, title innan man börjat!ge möjlighet att komplettera senare! (7) Habituation!That gesture works everywhere else; why doesn t it work here too?!man måste som designer kunna konventioner!ctrl-a, Ctrl-X, Ctrl-S! Emacs vs Word 29!

forts! (8) Spatial Memory!Flytta inte runt saker!ha knappar etc där de förväntas!egen konfigurering kan vara bra! (11) Keyboard Only!Kan förväntas!swing har omfattande stöd för detta!tabba runt!mnemonics! Att göra! Titta igenom alla Swing-komponenter!Veta vad som finns och vad de gör!swing-tutorial på nätet! Läsa Preface och kapitel 1 i Tidwell! Nästa gång!mer om användare!fler designmönster!swing/appframework 30!