GUI Implementation Support

Similar documents
What does JFC stand for?

GUI Software Architecture

Human-Computer Interaction IS4300

Human-Computer Interaction IS4300

Input: Interaction Techniques

Widgets. Overview. Widget. Widgets Widget toolkits Lightweight vs. heavyweight widgets Swing Widget Demo

Human-Computer Interaction IS4300

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1

Widget. Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down

Widget Toolkits CS MVC

Input part 3: Interaction Techniques

Widgets. Widgets Widget Toolkits. User Interface Widget

Introduction to GUIs. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2014

(Incomplete) History of GUIs

Organization of User Interface Software

UI Software Organization

Graphical User Interfaces (GUIs)

CS415 Human Computer Interaction

Educational Fusion. Implementing a Production Quality User Interface With JFC

WIMP Elements. GUI goo. What is WIMP?

Prototyping. Readings: Dix et al: Chapter 5.8 Marc Rettig: Prototyping for tiny fingers, Communications of the ACM, April 1994.

CS 4300 Computer Graphics

Event Dispatch. Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch. 2.4 Event Dispatch 1

Event Dispatch. Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch. Event Architecture. A pipeline: Event Capture

10/16/2008. CSG 170 Round 5. Prof. Timothy Bickmore. User Analysis Task Analysis (6) Problem Scenarios (3)

KF5008 Program Design & Development. Lecture 1 Usability GUI Design and Implementation

Chapter 8. Implementation Support

Quality Assurance User Interface Modeling

CS415 Human Computer Interaction

Java Swing Introduction

All the Swing components start with J. The hierarchy diagram is shown below. JComponent is the base class.

Review. Designing Interactive Systems II. Review. Base Window System. Apps UITK BWS GEL. 4-Layer Model Graphics and Event Library BWS GEL

PROGRAMMING DESIGN USING JAVA (ITT 303) Unit 7

Lecture 6. Design (3) CENG 412-Human Factors in Engineering May

Fall UI Design and Implementation 1

CS 11 java track: lecture 3

Event Dispatch. Dispatching events to windows and widgets.

Introduction to Graphical Interface Programming in Java. Introduction to AWT and Swing

Low fidelity: omits details High fidelity: more like finished product. Breadth: % of features covered. Depth: degree of functionality

Jonathan Aldrich Charlie Garrod

where are we? ICS 105: Project in HCI ui toolkits what does the toolkit do? model-view-controller model-view-controller lectures

Page 1. Human-computer interaction. Lecture 2: Design & Implementation. Building user interfaces. Users and limitations

Software Tools. Scott Klemmer Autumn 2009

Seng310 Lecture 8. Prototyping

CS 251 Intermediate Programming GUIs: Components and Layout

Designing Interactive Systems II

CPS122 Lecture: Graphical User Interfaces and Event-Driven Programming

Review. Designing Interactive Systems II. Introduction. Web 2.0 in keywords GWT Cappuccino HTML5. Cross platform GUI Toolkit

Prototyping a Swing Interface with the Netbeans IDE GUI Editor

Human Computer Interaction Lecture 08 [ Implementation Support ] Implementation support

Elements of windowing systems

Swing. By Iqtidar Ali

User Interfaces for Web Sites and Mobile Devices. System and Networks

implementation support

Graphical User Interface (GUI)

Original GUIs. IntroGUI 1

MODEL UPDATES MANIPULATES USER

Introduction to concurrency and GUIs

Human-Computer Interaction IS4300. I5 painting app due

Lecture (06) Java Forms

Android PC Splash Brothers Design Specifications

Object-Oriented Programming Design. Topic : Graphics Programming GUI Part I

Event-driven Programming: GUIs

MVC: Model View Controller

CS415 Human Computer Interaction

Interaction Style Categories. COSC 3461 User Interfaces. Windows. Window Manager

MOBILE COMPUTING 1/20/18. How many of you. CSE 40814/60814 Spring have implemented a command-line user interface?

Windows and Events. created originally by Brian Bailey

Topic 9: Swing. Swing is a BIG library Goal: cover basics give you concepts & tools for learning more

Topic 9: Swing. Why are we studying Swing? GUIs Up to now: line-by-line programs: computer displays text user types text. Outline. 1. Useful & fun!

Packages: Putting Classes Together

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 6 Operating Systems

PIC 20A GUI with swing

Sri Vidya College of Engineering & Technology

Graphical User Interfaces. Comp 152

Getting started with M-Files

Event Driven Programming

Advanced Effects in Java Desktop Applications

Lecture 5: Java Graphics

GUI Basics. Object Orientated Programming in Java. Benjamin Kenwright

Design Patterns. it s about the Observer pattern, the Command pattern, MVC, and some GUI. some more

Java. GUI building with the AWT

Inside Smalltalk MVC: Patterns for GUI Programming

GUI Program Organization. Sequential vs. Event-driven Programming. Sequential Programming. Outline

Fall UI Design and Implementation 1

Page 1. Human-computer interaction. Lecture 1b: Design & Implementation. Building user interfaces. Mental & implementation models

CS 116x Winter 2015 Craig S. Kaplan. Module 03 Graphical User Interfaces. Topics

TYPES OF INTERACTORS Prasun Dewan Department of Computer Science University of North Carolina at Chapel Hill

SBD:Interaction Design

Charlie Garrod Michael Hilton

User Interface. Three Mile Island. January 14, 2011 CSE 403, Winter 2011, Brun

Week Chapter Assignment SD Technology Standards. 1,2, Review Knowledge Check JP3.1. Program 5.1. Program 5.1. Program 5.2. Program 5.2. Program 5.

Introduction to the JAVA UI classes Advanced HCI IAT351

Performance Pro Update 3.4 September 2015

China Jiliang University Java. Programming in Java. Java Swing Programming. Java Web Applications, Helmut Dispert

User Interface Design

Code Check TM Software Requirements Specification

Swing from A to Z Some Simple Components. Preface

This quiz is closed book, closed notes. You have 80 minutes to complete it. Your name:

10/23/2008. CSG 170 Round 6. Prof. Timothy Bickmore. Quiz. Open book / Open notes 15 minutes

Transcription:

GUI Implementation Support Learning Objectives: Why GUIs? What is a GUI? Why is implementation support needed? What kinds of implementation support are available? Basic concepts in OO GUI toolkit & app framework Basics of Java Swing Use Netbeans to Design a GUI Why GUIs? 1. Feedback 2. Speak the User s Language 3. Clearly Marked Exits 4. Consistency 5. Prevent Errors 6. Minimize User Memory Load 7. Flexibility / Shortcuts 8. Simple Design 9. Good Error Messages 10. Help and Documentation 11. Use Appropriate Affordances 12. Visibility / Obviousness 1

What s a GUI? Standard Elements of a GUI WIMP Windows Icons Menus Pointers What is a Widget? Examples? The Macintosh 7 Button Slider Pulldown menu Check box Radio buttons Text entry fields File pick/save These have become standard 1984 2

WIMP Elements in Swing: Windows WIMP Elements in Swing: Buttons 3

WIMP Elements in Swing: Menus WIMP Elements in Swing: Combo Box 4

WIMP Elements in Swing: Text Field / Area WIMP Elements in Swing: Labels 5

WIMP Elements in Swing: Tool tips WIMP Elements in Swing: Embedded Panels 6

WIMP Elements in Swing: Advanced Pros and Cons of Standard Widget Sets? Pro: Collection of good interaction techniques that work well uniformity is good for usability Improves external consistency Cons: Significant stagnation Failing to customize interaction techniques to tasks Efficiency could be improved 7

Example of non-standard widget: Pie menus A circular pop-up menu only angle of mouse motion counts Maya, Blender, Grand Theft Auto V, Android Browser What are Fitts law properties? minimum distance to travel minimum required accuracy (dependent on # of options) very fast (dependent on # of options) GUI Implementation Support 8

UIMS 9/30/15 Exercise Your engineers just developed a new desktop computer, and want a modern GUI on it. They give you the following primitives: drawpixel(x,y,color) readmousex(), readmousey(), readmousebutton(), readkey() What functionality do you need? Myers: Levels of Abstraction in UI Software Toolkit Window Sys OS Hardware Application 9

UIMS 9/30/15 UIMS Example: Labview Toolkit Window Sys OS Hardware Application Myers Chapter Graphical User Interface Programming Why use GUI tools? Makes authoring easier & more economical Improves quality Improves usability 10

OOP and Toolkit Widgets Why are they so well suited? Natural metaphor (direct manipulation) Subclassing to create custom widgets Encapsulation (data & behavior) OO Toolkit Concepts #1 Specialization via Subclassing java.lang.object java.awt.component java.awt.container javax.swing.jcomponent javax.swing.text.jtextcomponent javax.swing.jtextfield javax.swing.jtextarea 11

OO Toolkit Concepts #2 Composition Put together interactive objects at larger scale than atomic interactors Container objects OO Toolkit Concepts #3 Layout How a container organizes its widgets within itself. 12

OO Toolkit Concepts #4 Event Handling 1. When anything happens in the UI Mouse clicked, Window moved, Key pressed, etc 2. Windowing System creates a record 3. The event record in added to a UI event queue 4. The application (or toolkit) pulls events from the queue and acts on them in order read-evaluation loop repeat read-event(myevent) case myevent.type type_1: do type_1 processing type_2: do type_2 processing... type_n: do type_n processing end case end repeat 13

notification-based public class MyWindow extends JFrame { public MyWindow() { JButton jbutton=new JButton( OK ); jbutton.addactionlistener( new MyEventHandler()); add(jbutton); } public class MyEventHandler { public void actionperformed( ActionEvent e) { System.out.println("Hi mom!"); } } OO Toolkit Concepts #5 Virtual toolkits & MVC Aka Cross-Platform Development Systems Provide a layer of abstraction above native toolkit Two approaches: Map to native widgets Provide own widgets 14

Model-View-Controller Architecture for Widgets View Display Model Controller Inputs Swing 15

Java GUI APIs AWT The original now mostly obsolete as a toolkit (event handling mechanism still used in Swing) Used heavyweight components Swing (~1997) The current(?) standard. Native window, but draws all widgets Pluggable look-and-feel SWT (Standard Widget Toolkit) Open source widget toolkit. JavaFX Becoming new standard UI toolkit (?) Pluggable Look-and-Feel Java GTK+ Windows Mac 16

Netbeans Projects Palette Navigator Visual Design & Source Editors Properties Group Exercise Project Teams Sketch a main screen for your app 17

GUI Implementation Support Learning Objectives: Why GUIs? What is a GUI? Why is implementation support needed? What kinds of implementation support are available? Basic concepts in OO GUI toolkit Basics of Java Swing Use Netbeans to Design a GUI Swing Homework I4 Create a Restaurant Ordering App Two JLabels, one with an icon. Two JButtons, one with an icon. Etc. Email a screen shot of your app running, together with a zip archive of your project directory to is4300f15@ Due in 1 week 18

To do Read Design I (Benyon Ch 9; Rosson Ch 3). Due Monday: P2 Requirements Analysis Start Homework I4 Swing & Netbeans 19