Is image everything?

Similar documents
Original GUIs. IntroGUI 1

Introduction p. 1 JFC Architecture p. 5 Introduction to JFC p. 7 The JFC 1.2 Extension p. 8 Swing p. 9 Drag and Drop p. 16 Accessibility p.

Java IDE Programming-I

Swing UI. Powered by Pentalog. by Vlad Costel Ungureanu for Learn Stuff

Introduction to the JAVA UI classes Advanced HCI IAT351

CSE 143. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

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

Java: Graphical User Interfaces (GUI)

Tool Kits, Swing. Overview. SMD158 Interactive Systems Spring Tool Kits in the Abstract. An overview of Swing/AWT

Control Flow: Overview CSE3461. An Example of Sequential Control. Control Flow: Revisited. Control Flow Paradigms: Reacting to the User

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

WIMP Elements. GUI goo. What is WIMP?

CSE 331. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

Graphics. Lecture 18 COP 3252 Summer June 6, 2017

Graphical User Interface (GUI)

Swing. By Iqtidar Ali

CS 251 Intermediate Programming GUIs: Components and Layout

Handout 14 Graphical User Interface (GUI) with Swing, Event Handling

Basics of programming 3. Java GUI and SWING

GUI Components Continued EECS 448

Lecture 18 Java Graphics and GUIs

Graphical User Interface (GUI) components in Java Applets. With Abstract Window Toolkit (AWT) we can build an applet that has the basic GUI

Graphical User Interface (GUI)

Human-Computer Interaction IS4300

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

Event Driven Programming

LAYOUT. Chapter 3 of Pro WPF : By Matthew MacDonald Assist Lect. Wadhah R. Baiee. College of IT Univ. of Babylon

CPS122 Lecture: Graphical User Interfaces and Event-Driven Programming

CSE 331. Event- driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

Part 3: Graphical User Interface (GUI) & Java Applets

Contents Introduction 1

Supporting Materials

Outline. Topic 9: Swing. GUIs Up to now: line-by-line programs: computer displays text user types text AWT. A. Basics

Layout. Dynamic layout, Swing and general layout strategies

JTcl and Swank. Bruce A. Johnson, Tom Poindexter, & Dan Bodoh. What s new with Tcl and Tk on the JVM. Wednesday, October 26, 11

CSE 331 Software Design & Implementation

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

Graphical User Interfaces (GUIs)

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

Rizvi College of Arts, Science & Commerce Bandra (W), Mumbai Teaching Plan Academic Year

PROGRAMMING DESIGN USING JAVA (ITT 303) Unit 7

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!

Graphical User Interface (GUI)

Widgets. Widgets Widget Toolkits. User Interface Widget

Summary Chapter 25 GUI Components: Part 2

Window Interfaces Using Swing Objects

Chapter 6: Graphical User Interfaces

Announcements. Introduction. Lecture 18 Java Graphics and GUIs. Announcements. CSE 331 Software Design and Implementation

Chapter 12 GUI Basics

Prototyping a Swing Interface with the Netbeans IDE GUI Editor

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1

Windows Presentation Foundation for.net Developers

GUI Components: Part 1

ROUTED EVENTS. Chapter 5 of Pro WPF : By Matthew MacDonald Assist Lect. Wadhah R. Baiee. College of IT Univ. of Babylon

Graphic User Interfaces. - GUI concepts - Swing - AWT

Window Interfaces Using Swing Objects

GUI Event Handlers (Part I)

DM550 / DM857 Introduction to Programming. Peter Schneider-Kamp

Road Map for Essential Studio 2011 Volume 4

GUI Basics. Object Orientated Programming in Java. Benjamin Kenwright

Programming graphics

Outline. More on the Swing API Graphics: double buffering and timers Model - View - Controller paradigm Applets

Containers. Atomic Components. Containment Hierarchy. Example Example 3.3 (revisited) Example DemoSwing.java

2IS45 Programming

(Incomplete) History of GUIs

Design patterns for graphical user interface applications

Road Map for Essential Studio 2010 Volume 1

Systems Programming Graphical User Interfaces

Essentials of Developing Windows Store Apps Using C#

5. In JAVA, is exception handling implicit or explicit or both. Explain with the help of example java programs. [16]

BASICS OF GRAPHICAL APPS

Class 16: The Swing Event Model

Visit for more.

UI Software Organization

CSE 331 Software Design & Implementation

Swing from A to Z Some Simple Components. Preface

Widget Toolkits CS MVC

CSCI 201L Midterm Written SOLUTION Fall % of course grade

Chapter 13 Lab Advanced GUI Applications Lab Objectives. Introduction. Task #1 Creating a Menu with Submenus

Windows Presentation Foundation Programming Using C#

11/6/15. Objec&ves. RouleQe. Assign 8: Understanding Code. Assign 8: Bug. Assignment 8 Ques&ons? PROGRAMMING PARADIGMS

Graphics programming. COM6516 Object Oriented Programming and Design Adam Funk (originally Kirill Bogdanov & Mark Stevenson)

Packages: Putting Classes Together

Command-Line Applications. GUI Libraries GUI-related classes are defined primarily in the java.awt and the javax.swing packages.

Introduction to Graphical User Interfaces (GUIs) Lecture 10 CS2110 Fall 2008

Creating Professional Swing UIs Using the NetBeans GUI Builder

Chapter 14. More Swing

Module Title : 20484C:Essentials of Developing Windows Store Apps Using C#

Lecture 19 GUI Events

Human-Computer Interaction IS4300

Swing. Component overview. Java UI, summer semester 2017/2018 1

GUI DYNAMICS Lecture July 26 CS2110 Summer 2011

Graphical User Interfaces. Comp 152

Java Swing. Recitation 11/(20,21)/2008. CS 180 Department of Computer Science, Purdue University

Reference Services Division Presents. Microsoft Word 2

Chapter 13 Lab Advanced GUI Applications

CSE 331 Software Design and Implementation. Lecture 19 GUI Events

Basicsof. JavaGUI and SWING

More Swing. Chapter 14. Chapter 14 1

Transcription:

Is image everything?

Review Computer Graphics technology enables GUIs and computer gaming. GUI's are a fundamental enabling computer technology. Without a GUI there would not be any, or much less: Computer based industry -- USA's major productivity advantage Computer systems in the homes ( 1997 18% 2012 75%) with broadband Internet, Web, E-commerce before Mosaic -- telnet, ftp, gopher, lynx, WAIS (text UI) after Mosaic Google, Facebook, Amazon.com, Ebay smart phones, tablets How much software would you use / buy that does not have a GUI interface? How many computer games without graphics would you play? Where would Microsoft be without Windows? Apple w/o Macintosh?

GUI Concepts Architecture MVC UIs often model / view-controller (touch changing?) Geometry parent (container) / child (component) content hierarchy sets layout constraints Interface Components window, menu, dialog, label, button, scrollbar, list, combobox, toolbar, table, pane, image, icon, font,... Events event driven program architecture "control flow" internal events: Timers, "event messages" user events are associated w/ UI component implicitly events (resize, expose) explicitly events: user clicks, selects, drags on UI component Drawing automatic (UI components), borders, fore / back, focus, hover custom (application) draws: buttons, menus, cell renderers

Swing / Java n 1 Component Container parent Layout Manager Containers JFrame, JApplet, JDialog, JOptionPane, JColorChooser, JFileChooser,... JMenuBar, JMenu, JMenuItem,... ContentPane, JPanel, JScrollPane, JTabbedPane, JToolBar, JTree, JList, JTable, JButton, JTextField, JTextArea, JEditorPane,... Geometry Layout Managers: Border, Box, GridBag, Flow, Grid,... Containment hierarchy nested layout mgrs Graphics repaint & paintcomponent invoke with repaint(); Graphics class, g.draw*(...), g.fill*(...), Color, Font, images, icons

Event Handling Events are classes :Action, Item, Adjustment, Window, Mouse, Timer Actions enable menuitems, buttons to share event handlers and labels. Listeners & Adapters (for each listener w/ 2+ methods) Action, Item, Mouse, Window,... MouseAdapter, WindowAdapter Add a listener to component abutton.addactionlistener(new JButtonListener()); Implement the listener to define event handling class JButtonListener implements ActionListener { public void actionperformed(actionevent event) { // define behavior } } Use an anonymous inner class adapter (singleton) ajcomponent.addactionlistener ( new ActionListener() { public void actionperformed(actionevent event) {... } } );

Data Models Model/ViewController architecture in collection (selection and view oriented) UIs: JScrollPanes, JLists, JComboBox, JTable, JTree, JEditorPane. JTextPane. Selection model: single, interval, multiple Models are objects with collections: Object[], Vector abstract models, default models extend abstract JList(E[] listdata) // has static list items. DefaultTableModel(Object[][] data, Object[] columnnames) DefaultTableModel (Vector data, Vector columnnames) DataModels provide get / set items, get / set model's data (Vectors),... DataModels facilitate persistence (local and remote file or database) Collection UIs (JTable) provide default and custom cell editor and renders.

Windows Presentation Foundation / C# C# class, partial class, interface, property, delegate, enum XAML "code behind" UI designer (Blend), compiled // see obj/debug/*.cs define behavior for an event WPF Window holds a single element. Layout containers are nested and can hold many elements Layouts derive from abstract System.Windows.Controls.Panel Layouts don t scroll; use with a ScrollViewer Properties: FrameworkElement : Margin, Alignment, Width, Height,... Control: Fore / Background, Brush, Border, Cursor,... Panel: Children,... DockPanel: Dock {Top, Bottom, Left, Right }, LastChildFill,..

Event Handling 5 Event categories: lifetime, mouse, keyboard, stylus, multitouch Bubbling events Tunneling events propogate up containment hierarchy from source propogate down containment hierarchy to source In XAML set event property for a Control <Window x:name...... <Button x:name="abutton"... Click="buttonPressed"... />... </Window> In code behind *.cs partial class define behavior to handle event private void buttonpressed(object sender, RoutedEventArgs e)... // code for method's behavior } All event handlers have save argument (signature) Object the source of the event RoutedEventArgs args describing the event

Collection UIs WPF collection UIs: ListView, GridView, TreeView, DataGrid DataGrid provides built-in and custom (template) cell editor/renders ADO.net provides database persistence DataSet is an in-memory cache of data with properties: Tables (collection of DataTable) Relations (collection of DataRelation) properties. navigation from one DataTable to another within a DataSet.

Design HCI human performance humans are productive learners visual perception and memory are superior Error: intention (mistake), storage (lapse), action (slip) GUIs Functional > Aesthetic Simplicity > realism usage is a visual search pattern recognition task low syntactic demand (applications share "look && feel" syntax) images have semiotic "iconic representation" images / labels can embedded semantics into tasks. control and closure UI objects are manipulated in "reversible" steps minimizes slip errors application state show w/ enable / disable graphic art principles: reduction, regulation, scale, contrast, color use, activity / visual search / spatial logic, grouping distinction, figure / ground negative space, grids, Interface Builders: directional (?), layout! design tool, bind UI && events

GUI trends 2D Variable magnification of display Allow search or large information space a low magnification see more Select objects for detailed evaluation and zoom in increase magnification e.g. fisheye menus, table lens, hyperbolic trees small GUIs cell phones, wearable computers, smart jewelry serial-visual-presentation (word, character) large GUIs 3D Navigation incorporates zoom. Volume > Area, depth == variable magnification e.g. data wall, cone trees, 3D desktops, immersive GUIs Hieroglyphic language emot-icons, text abreviations (2mi, h2cus,...) pictures (nouns, rebus), words (verbs), emoticons (emotions) Scientific Visualization Big Information Big Data (sensor, databases: social media,...)

What to do next wrt GUI? Be more visually literate visual thinking is a critical skill for graphical user interface design! Graphic Design principles are important! Always evaluate and appreciate good (and bad) design in the world around you. Design ideas can come from other media. Do not limit design to what you currently know how to do! Learn more about GUI APIs (design, controls, user interface, designers) how are events implemented, can they be combined (Actions), image processing, custom drawn components, data binding (data models), persistence,... One design means: 1. You can't think of another one. 2. If plan A doesn't work you are stuck 3. You will implement your first (not best) solution to the problem. Design as an exercise... Design "reps" strengthens your creativity... Johnson, J. Design with the mind in mind, 2 nd, 2014.