Notices Assn 3 is posted – due tomorrow. Quiz marking underway (still – sigh…). Alternate solution code was added on Tuesday to the assignment 3 statement.

Slides:



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

Using Eclipse. Getting Started There are three ways to create a Java project: 1:Select File > New > Project, 2 Select the arrow of the button in the upper.
Starting and Customizing a PowerPoint Slide Show
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.
Unit 091 Introduction to GUI Programming Introduction to User Interfaces Introduction to GUI Programming GUI Design Issues GUI Programming Issues Java.
Automating Tasks With Macros
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 Lesson 1 Microsoft PowerPoint Basics
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)
Working with SharePoint Document Libraries. What are document libraries? Document libraries are collections of files that you can share with team members.
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.
An Introduction to ASP.NET Web Pages 2 Module 1: Webmatrix Installation and Your First Web Site Tom Perkins.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Java Swing - Lecture 1 An Introduction Milena Radenkovic slides originally by Chris Coleman.
Microsoft Office Illustrated Fundamentals Unit B: Understanding File Management.
Written by Liron Blecher
Lab 8 – C# Programming Adding two numbers CSCI 6303 – Principles of I.T. Dr. Abraham Fall 2012.
Win8 on Intel Programming Course Modern UI : Features Cédric Andreolli Intel Software.
Copyright ©: SAMSUNG & Samsung Hope for Youth. All rights reserved Tutorials Software: Building apps Suitable for: Advanced.
INTRODUCTION TO FRONTPAGE. TOPICS TO BE DISCUSSED……….  Introduction Introduction  Features Features  Starting Front Page Starting Front Page  Components.
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
DUE Hello World on the Android Platform.
Dreamweaver An introduction to Dreamweaver by a beginner who can show you the rudiments of quickly and easily creating a web site. An attempt to offer.
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.
Creating an Effective PowerPoint Presentation
® IBM Software Group © 2006 IBM Corporation “Essential” HTML Tags and Page Development Techniques This Learning Module describes the standard HTML tags.
Creating an External Style Sheet Module 5: Beyond the Basics with Expression Web LESSON 8.
Graphics and Event-Driven Programming in Java John C. Ramirez Department of Computer Science University of Pittsburgh.
USING WORDPRESS TO CREATE A WEBSITE (RATHER THAN A BLOG) STEP-BY-STEP INSTRUCTIONS.
Web Design. Keep a Consistent Appearance Visually show that the site is the same Always use the same background Same graphic style Same type formatting.
MS Power point Tutorial
Topics Introduction Scene Graphs
USING WORDPRESS TO CREATE A WEBSITE (RATHER THAN A BLOG) STEP-BY-STEP INSTRUCTIONS.
What do you know about PowerPoint? Interactivity in PowerPoint.
+ Publishing Your First Post USING WORDPRESS. + A CMS (content management system) is an application that allows you to publish, edit, modify, organize,
PA335 Unit 8 More SmartDraw and Powerpoint. Google maps (Google.com, Maps link, type in address)
Easy WP Guide V2.6 for WordPress 3.8. easywpguide.com Adding Tags within your Post Adding Tags whilst editing your Post, will automatically assign those.
Welcome Teachers! - WELCOME TO TEACHER WEBSITE BUILDING 101.
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.
Lecture 7:Introduction to JavaFX Michael Hsu CSULA.
Today Javadoc. Packages and static import. Viewing API source code. Upcoming Topics: –protected access modifier –Using the debugger in Eclipse –JUnit testing.
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.
Java FX: Scene Builder.
LMEvents SharePoint Portal How-to Guide
COSC-4840 Software Engineering
CISC124 Quiz 2 grading underway.
CMPE212 – Stuff… Assn 3 due and Quiz 2 in the lab next week.
EE 422C Java FX.
© Paradigm Publishing, Inc.
CMPE212 – Stuff… Assn 3 sample solution is posted.
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.
CMPE212 – Stuff… Assignment 4 due March 23 – this Friday.
CISC124 Last Quiz next week. Topics listed in Tuesday’s lecture.
CISC124 Quiz 3 marking underway. Assn 5 due Friday. Fall 2018
Winter 2019 CMPE212 4/20/2019 CMPE212 – Reminders
Microsoft Office Illustrated Fundamentals
CMPE212 – Reminders Assignment 2 due today, 7pm.
CMPE212 – Reminders Assignment 5, a JavaFX GUI, due this Friday.
CMPE212 – Reminders Assignment 5, a JavaFX GUI, due next Friday.
4.00 Apply procedures to add content by using Dreamweaver. (22%)
Presentation transcript:

Notices Assn 3 is posted – due tomorrow. Quiz marking underway (still – sigh…). Alternate solution code was added on Tuesday to the assignment 3 statement – uses the Class Object. Simpler and more elegant solution (IMHO). Winter 2016CMPE212 - Prof. McLeod1

Today GUI Design, Cont. Getting started with JavaFX: –Overview. –Configuring Eclipse. –Wizard generated project contents. –How it works – the basics. –Start Layout Managers. Winter 2016CMPE212 - Prof. McLeod2

Winter 2016CMPE212 - Prof. McLeod3 “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 2016CMPE212 - Prof. McLeod4 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…

Aside – “Design Leadership” From: leadership/ Winter 2016CMPE212 - Prof. McLeod5

Winter 2016CMPE212 - Prof. McLeod6 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 2016CMPE212 - Prof. McLeod7 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 2016CMPE212 - Prof. McLeod8 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 2016CMPE212 - Prof. McLeod9 Google Web Page Design See: Skip the first few minutes – start at about 2:40

Winter 2016CMPE212 - Prof. McLeod10 Web Usability See Good on-line books: urFace/userInYourFace.htm

Books ( whatever they are… ) “GUI Bloopers 2.0”, by Jeff Johnson (also see “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 2016CMPE212 - Prof. McLeod11

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 2016CMPE212 - Prof. McLeod12

Getting Started Using JavaFX - Topics Overview / Installation. Start by looking at the Scene/Stage model. What is a Scene Graph? How components are laid out using Pane-based layout managers. Look at the use of CSS style sheets. Attach events to components. Look at the use of FXML files and SceneBuilder. Drawing, images and animation. Winter 2016CMPE212 - Prof. McLeod13

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 2016CMPE212 - Prof. McLeod14

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 2016CMPE212 - Prof. McLeod15

Winter 2016CMPE212 - Prof. McLeod16 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:

e(fx)clipse Version Update March 3, 2016: released version The resources page provides the download link as: released/2.2.0/site Change “2.2.0” to “2.3.0” to get the latest. Winter 2016CMPE212 - Prof. McLeod17

SceneBuilder Version Latest installer build linked to the Gluon site is 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 2016CMPE212 - Prof. McLeod18

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 2016CMPE212 - Prof. McLeod19

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 2016CMPE212 - Prof. McLeod20

New JavaFX Project Wizard, Cont. An item (layouts, controls, images, etc.) is called a “node”. Nodes are added to 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 2016CMPE212 - Prof. McLeod21

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 2016CMPE212 - Prof. McLeod22

JavaFX Scene Graph Here is part of the existing Node hierarchy: Winter 2016CMPE212 - Prof. McLeod23 Node Parent Region Control PaneLabeled

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 2016CMPE212 - Prof. McLeod24

JavaFX Scene Graph, Cont. There are many more classes extending nodes in this hierarchy. For example, some classes extending from Labeled: Winter 2016CMPE212 - Prof. McLeod25 Labeled ButtonBaseLabel Button CheckBoxToggleButton RadioButton See the JavaFX API Tree diagrams for all the classes.

Aside - JavaFX API Docs These are separate from the regular Java API docs. You can download your own copy from: mentation/jdk8-doc-downloads html Let’s have a look! Winter 2016CMPE212 - Prof. McLeod26

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 2016CMPE212 - Prof. McLeod27

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 2016CMPE212 - Prof. McLeod28

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 2016CMPE212 - Prof. McLeod29

Pane Objects In order to design your window you need to understand how the different Pane objects work. From the JavaFX API Tree: Winter 2016CMPE212 - Prof. McLeod30