CMPE212 – Stuff… Assn 3 sample solution is posted.

Slides:



Advertisements
Similar presentations
HOW TO USE POWERPOINT By Bryan Kreps.
Advertisements

Microsoft Office Illustrated Fundamentals Unit M: Creating a Presentation.
Windows XP Basics OVERVIEW Next.
Today Assn 3 posted. Due March 13. Quiz 2 solutions posted. Assignment 2 sample solution is posted. Introduce Event-Driven Programming and GUI Design.
Calendar Browser is a groupware used for booking all kinds of resources within an organization. Calendar Browser is installed on a file server and in a.
Installing SAS 9.3 Raymond R. Balise Health Research and Policy.
Michael Donovan, River Campus Libraries – 12/03 DocuShare Overview and Training.
1 of 6 Parts of Your Notebook Below is a graphic overview of the different parts of a OneNote 2007 notebook. Microsoft ® OneNote ® 2007 notebooks are digital.
PowerPoint: Tables Computer Information Technology Section 5-11 Some text and examples used with permission from: Note: We are.
Microsoft ® Office PowerPoint ® 2003 Training Playing movies [Your company name] presents:
Getting Started with Microsoft PowerPoint Vivien Hall (CCS) Acknowledgements – Ali Parvin (CCS)
Review of last session The Weebly Dashboard The Weebly Dashboard Controls your account and your sites Controls your account and your sites From here you.
Written by Liron Blecher
Win8 on Intel Programming Course Modern UI : Features Cédric Andreolli Intel Software.
Chapter 2 Developing a Web Page. A web page is composed of two distinct sections: –The head content –The body Creating Head Content and Setting Page Properties.
IE 411/511: Visual Programming for Industrial Applications
Creating an Effective PowerPoint Presentation
An Introduction to Designing and Executing Workflows with Taverna Aleksandra Pawlik materials by: Katy Wolstencroft University of Manchester.
USING WORDPRESS TO CREATE A WEBSITE (RATHER THAN A BLOG) STEP-BY-STEP INSTRUCTIONS.
MS Power point Tutorial
Topics Introduction Scene Graphs
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Winter 2016CMPE212 - Prof. McLeod1 CMPE212 Object Oriented Programming for Engineers Course Web Site: Lecture.
What Is Firefox? __________ is a Web ___________ that you use to search for and view Web pages, save pages for use in the future, and maintain a list.
Notices Assn 3 is posted – due this Friday. Quiz marking underway (still). See assn 3 forum postings on use of Color class and meaning of second Emitter.
Notices Assn 3 is posted – due tomorrow. Quiz marking underway (still – sigh…). Alternate solution code was added on Tuesday to the assignment 3 statement.
Notices Assn 2 is due tomorrow, 7pm. Moodle quiz next week – written in the lab as before. Everything up to and including today’s lecture: Big Topics are.
Notices Assn 4 posted. Due last day of class. Last quiz this week in Moodle, in the lab. Would the student doing the USATS please get them from Emily Crawford.
Getting Started with Dreamweaver
Note to trainers The videos in this presentation provide closed-caption files as it’s often easier for viewers of all abilities to follow along. If you.
Landscape Institute Introducing the new Branch Websites
Java Look-and-Feel Design Guidelines
PowerPoint: Tables and Charts
3.01 Apply Controls Associated With Visual Studio Form
An Introduction to Computers and Visual Basic
Presentation Graphics
Understand Windows Forms Applications and Console-based Applications
CISC124 Quiz 2 grading underway.
Introduction With TimeCard users can tag SharePoint events with information that converts them into time sheets. This way they can report.
CMPE212 – Stuff… Assn 3 due and Quiz 2 in the lab next week.
EE 422C Java FX.
© Paradigm Publishing, Inc.
CISC124 Last Quiz this week. Topics listed in last Tuesday’s lecture.
CISC124 Last Quiz this week. Topics listed in last Tuesday’s lecture.
CISC124 Last Quiz this week. Topics listed in last Tuesday’s lecture.
Applications Software
Using Charts in a Presentation
CMPE212 – Stuff… Assignment 4 due March 23 – this Friday.
Citation Map Visualizing citation data in the Web of Science
CISC124 Last Quiz next week. Topics listed in Tuesday’s lecture.
Getting Started with Dreamweaver
CISC124 Assignment 4 on Inheritance due next Friday.
CISC124 Quiz 3 marking underway. Assn 5 due Friday. Fall 2018
An Introduction to Computers and Visual Basic
Fall 2018 CISC124 2/24/2019 CISC124 Quiz 1 marking is complete. Quiz average was about 40/60 or 67%. TAs are still grading assn 1. Assn 2 due this Friday,
CISC124 Assignment 3 sample solution will be posted tonight after 7pm.
CMPE212 – Reminders Assignment 2 sample solution is posted.
Winter 2019 CMPE212 4/20/2019 CMPE212 – Reminders
Microsoft Office Illustrated Fundamentals
CMPE212 – Reminders Assignment 2 due today, 7pm.
PowerPoint Lesson 1 Microsoft Word Basics
Winter 2019 CMPE212 5/25/2019 CMPE212 – Reminders
CMPE212 – Reminders Assignment 5, a JavaFX GUI, due this Friday.
CMPE212 – Reminders Assignment 5, a JavaFX GUI, due next Friday.
CMPE212 – Reminders Assignment 2 due next Friday.
Microsoft Office Illustrated Fundamentals
4.00 Apply procedures to add content by using Dreamweaver. (22%)
Chapter 4 Enhancing the Graphical User Interface
Presentation transcript:

CMPE212 – Stuff… Assn 3 sample solution is posted. Winter 2018 CMPE212 11/11/2018 CMPE212 – Stuff… Assn 3 sample solution is posted. Assignment 4 due March 23 – this Friday. Next (and last) quiz next week. Winter 2018 CMPE212 - Prof. McLeod Prof. Alan McLeod

Today Quick look at GUI Design. Intro to JavaFX. Winter 2018 CMPE212 - Prof. McLeod

GUI Design Interface design is a BIG topic – beyond the scope of this course. IDE (Integrated Development Environments) tools can make it easy to choose and position components on a frame – but is the design as user-friendly as possible? Too many GUI programs have been slapped together without much thought as to their usability. Winter 2018 CMPE212 - Prof. McLeod

Interface Hall of Shame! This site is dated (circa 2000), but the points it raises are still valid. And many of the examples are funny! http://hallofshame.gp.co.at/index.php?mode=original Also has links to other resources on interface design. Also: http://www.webpagesthatsuck.com/index.html Winter 2018 CMPE212 - Prof. McLeod

Isys Information Architects Web Site Part of their development philosophy: “Software must assist the user perform a task, not become a task in itself. Software must not make the user feel stupid. Software must not make the computer appear to be stupid”. Winter 2018 CMPE212 - Prof. McLeod

“Principles of Good GUI Design” by James Hobart (CCI) (Corporate Computing International) Avoid the Biggest Problems: Forgetting the user. Not allowing the user full control. Putting too many features at the top level. Understand People Pattern/picture recognition – don’t expect a user to work from memory all the time. Stay open to the different experiences and perspectives of your users. Winter 2018 CMPE212 - Prof. McLeod

James Hobart, Cont. Design for Clarity and Consistency Use consistent, self-explanatory terms for operations throughout the entire system. (Enforced by Macintosh, but not Microsoft…) Pay “homage” to common operational terms like “copy”, “paste”, “save”, “save as”, etc. Provide Visual and Audible Feedback Use progress bars for operations that take more than a few seconds. Use sounds to warn users, but allow him to turn these off later… Winter 2018 CMPE212 - Prof. McLeod

Aside – “Design Leadership” From: http://blog.userfocus.co.uk/design-leadership/ Winter 2018 CMPE212 - Prof. McLeod

James Hobart, Cont. Use Text Sparingly But Wisely Text should be descriptive but concise and accurate. Might be a task for a trained technical writer? Provide Traceable Paths The user should always know how he arrived at the current window and how to get back out again. Not so easy to implement! Winter 2018 CMPE212 - Prof. McLeod

James Hobart, Cont. Provide Keyboard Support Challenge: Can a user navigate and use all of your program without using a mouse? What operations should be mouse only? Maintain a Consistent “Look and Feel” Give a lot of thought to a single look and feel style that can be used throughout your project. (Changing the style of your presentation later can be very time consuming!) Winter 2018 CMPE212 - Prof. McLeod

James Hobart, Cont. Control Window Types and Numbers You can use “modal” dialog boxes for finite tasks (such as getting a specific user input). Otherwise try to keep the number of simultaneous modeless boxes to three or less. (What is the difference between modal and modeless windows, anyways?) Winter 2018 CMPE212 - Prof. McLeod

Google Web Page Design See: http://www.youtube.com/watch?v=697KX4Ciiws Skip the first few minutes – start at about 2:40 Winter 2018 CMPE212 - Prof. McLeod

Web Usability See http://www.usability.gov Good on-line books: http://www.webstyleguide.com/ http://www.usabilityinstitute.com/resources/userInYourFace/userInYourFace.htm Winter 2018 CMPE212 - Prof. McLeod

Paper-Based Books (whatever they are…) “GUI Bloopers 2.0”, by Jeff Johnson (also see http://www.gui-bloopers.com) “Designing with the Mind in Mind: Simple Guide to Understanding User Interface Design Rules”, also by Jeff Johnson “Don't Make Me Think: A Common Sense Approach to Web Usability”, 2nd Edition, by Steve Krug Many others! Winter 2018 CMPE212 - Prof. McLeod

Web Design vs. Application UI Design What are the different design considerations between a web app, a PC app and (what the heck!) a portable app? How about touch screens vs. a normal keyboard/mouse interface? Winter 2018 CMPE212 - Prof. McLeod

JavaFX Overview You can separate style and layout from functional code using *.css and *.fxml files. Very modern! Contains a rich set of tools for: Web browsing. Media playing. 2D and 3D drawing and animation. Including many visual effects. Taking advantage of hardware accelerated rendering. Winter 2018 CMPE212 - Prof. McLeod

JavaFX Overview, Cont. Already contains separate threads for: The main application. Rendering. Media playback. Over 50 controls, built-in. A dozen built-in chart types. 2D and 3D transformations as well as many other visual effects can be applied to most controls. Winter 2018 CMPE212 - Prof. McLeod

Fall 2013 CMPE212 JavaFX - Installation You need to add e(fx)clipse to eclipse in order to have the libraries and tools you need to write JavaFX code. You don’t need SceneBuilder but might like to play with it later. See the Resources page on the course web site. The homepage for e(fx)clipse is: http://www.eclipse.org/efxclipse Winter 2018 CMPE212 - Prof. McLeod Prof. Alan McLeod

e(fx)clipse Version June, 2017: released version 3.0.0... Current version is 3.0.0.2…. This is currently in the “General Purpose Tools” in the “Available Software” dialog, and it seems to come from eclipse.org. So, you don’t have to identify a different download site for it. Winter 2018 CMPE212 - Prof. McLeod

SceneBuilder Version Latest installer build linked to the Gluon site is 9.0.1 (Oct., 2017) for Java 9. (Java 8, use version 8.4.1) A drag and drop visual editor that edits an *.fxml file in the background. SceneBuilder can be invoked from within eclipse, but essentially runs outside of eclipse. More later… Winter 2018 CMPE212 - Prof. McLeod

New JavaFX Project Wizard Sets up quite an elaborate structure for you! Don’t have more than one JavaFX project per eclipse project. Let’s have a look! Winter 2018 CMPE212 - Prof. McLeod

New JavaFX Project Wizard, Cont. Your GUI class needs to extend the javafx.application.Application class. Your main() method must invoke the inherited launch() method to start the application. Supply the args from the main parameter list to launch(). The wizard overrides the start() method from Application and the parameter for start() is the Stage object for the window, called “primaryStage”. Winter 2018 CMPE212 - Prof. McLeod

New JavaFX Project Wizard, Cont. An item (layouts, controls, images, etc.) is called a “node”. Nodes are added to the Nodes hierarchy (next, next slide), and the root node of this hierarchy is added to the Scene object when it is instantiated (and it is given a size in pixels). The Scene object is then put on the stage using the .setScene() mutator. When the scene is all constructed the “curtains are raised” by invoking .show() on the stage object. Winter 2018 CMPE212 - Prof. McLeod

New JavaFX Project Wizard, Cont. The wizard also adds a link to a CSS (“Cascading Style Sheet”) file for the scene, called “application.css”. Initially the file is empty, but you can “skin” the scene using css style specifications for the window and any controls you are using. You can do all this in your GUI class too, but using the css file allows you to separate style code from application code. We’ll look into doing this a bit later. For now we’ll just use the default style (“Modena”). Winter 2018 CMPE212 - Prof. McLeod

JavaFX Scene Graph Here is part of the existing Node hierarchy: Node Parent Region Control Pane Labeled Winter 2018 CMPE212 - Prof. McLeod

JavaFX Scene Graph, Cont. Left-hand branch are containers – used to contain and organize other controls. Right-hand branch are the controls. Usually a container type object will be the “root”. Winter 2018 CMPE212 - Prof. McLeod

JavaFX Scene Graph, Cont. There are many more classes extending nodes in this hierarchy. For example, some classes extending from Labeled: Labeled ButtonBase Label Button CheckBox ToggleButton See the JavaFX API Tree diagrams for all the classes. RadioButton Winter 2018 CMPE212 - Prof. McLeod

Aside - JavaFX API Docs These used to be a separate from the regular Java API docs, but are now part of the “whole”. Winter 2018 CMPE212 - Prof. McLeod

JavaFX Scene Graph, Cont. Typically you build your GUI by first instantiating existing node objects. For example, Label myLabel = new Label(“Hello!”); In order to display the node in the window, you need to add the object you instantiated to the existing Scene Graph structure. Winter 2018 CMPE212 - Prof. McLeod

JavaFX Scene Graph, Cont. In order to be able to place your nodes (or “controls”) where you want them, you add them to a Pane object. A Pane child object includes a layout manager that decides where nodes can be placed. A Pane object can be added to different type Pane objects as if it was a node itself to give you a great deal of flexibility in your layout. Finally, the root pane object becomes the root of the scene object and the entire Scene Graph that you have constructed can be displayed. Winter 2018 CMPE212 - Prof. McLeod

Aside – Generating Import Statements Eclipse is great at helping you generate a missing import statement if you try to use a class that you have not yet imported. But: if you have a choice, make sure to choose the javafx one, rather than the class from javax.swing or java.awt. Winter 2018 CMPE212 - Prof. McLeod