Filthy Rich Clients: Filthier. Richer. Clientier. Romain Guy, Google Chet Haase, Adobe Systems

Size: px
Start display at page:

Download "Filthy Rich Clients: Filthier. Richer. Clientier. Romain Guy, Google Chet Haase, Adobe Systems"

Transcription

1 Filthy Rich Clients: Filthier Richer Clientier Romain Guy, Google Chet Haase, Adobe Systems

2 Learn techniques for making cooler, better, and just darned funner applications. Get filthy JavaOne SM Conference java.sun.com/javaone 2

3 Agenda Fluffy Introduction Demos and Explanations Self-Serving Links to More Information 2008 JavaOne SM Conference java.sun.com/javaone 3

4 Where Were We? JavaOne Presentation 6/06 12/06 6/07 12/07 5/ JavaOne SM Conference java.sun.com/javaone 4

5 Where Were We? 6/06 12/06 6/07 12/07 5/08 Wrote book 2008 JavaOne SM Conference java.sun.com/javaone 5

6 Where Were We? 6/06 12/06 6/07 12/07 5/08 Review, edit, review, edit, review, edit, review, edit 2008 JavaOne SM Conference java.sun.com/javaone 6

7 Where Were We? JavaOne Presentation 6/06 12/06 6/07 12/07 5/ JavaOne SM Conference java.sun.com/javaone 7

8 Where Were We? JavaOne Presentation Publisher Misses Date 6/06 12/06 6/07 12/07 5/ JavaOne SM Conference java.sun.com/javaone 8

9 Where Were We? Book Released! 6/06 12/06 6/07 12/07 5/ JavaOne SM Conference java.sun.com/javaone 9

10 Where Were We? 6/06 12/06 6/07 12/07 5/08 Recovery, Therapy 2008 JavaOne SM Conference java.sun.com/javaone 10

11 What s New? Animation is hot. Lots of animated effects everywhere: Desktops/phonetops (Vista, Mac OS X, iphone, Android) Applications Toolkits Scene Graph project New animation engine, based on Timing Framework fundamentals Graphics effects built in JavaFX software New scripting language with animation and graphical effects built in 2008 JavaOne SM Conference java.sun.com/javaone 11

12 Agenda Fluffy Introduction Demos and Explanations Way too many Timers! Animated Layout Bling 59 minutes of Q&A Self-Serving Links to More Information 2008 JavaOne SM Conference java.sun.com/javaone 12

13 Way Too Many Timers! Situation Multiple, simultaneous animations Solution Multiple Animators Problem Choppy Performance 2008 JavaOne SM Conference java.sun.com/javaone 13

14 Demo: Too Many Balls 2008 JavaOne SM Conference java.sun.com/javaone 14

15 Code: Animator Setup bouncer = PropertySetter.createAnimator( 2000, this, "y, 0, maxy, 0); bouncer.setrepeatcount(animator.infinite); bouncer.setacceleration(.5f); bouncer.setdeceleration(.5f); bouncer.setresolution(1); bouncer.start(); 2008 JavaOne SM Conference java.sun.com/javaone 15

16 Problem: Timer Resolution Swing Timer uses low-resolution mechanism of OS Each Timer event services only one request Multiple Timers clog the queue Timer event = single Timer n milliseconds FPS = 1000 / n 2008 JavaOne SM Conference java.sun.com/javaone 16

17 Problem: Timer Resolution (cont d) More Timers means more events Which means more time between events for any particular Timer Timer event = Timer 1 = Timer 2 = Timer 3 n milliseconds FPS = 1000 / n / JavaOne SM Conference java.sun.com/javaone 17

18 Solution: Use Single Timing Source Idea: Have only one Timer in the system send pulses to multiple targets Problem: TimingTarget doesn t work here Unless all of your animations are exactly the same 2008 JavaOne SM Conference java.sun.com/javaone 18

19 Solution #1: TimingSource Interface for providing external timer to Animators Can be used to provide non-default Timer Caution: Still have to be on EDT to be Swing-friendly Can also be used to provide multiple pulses from single timing source = Timer 1 = Timer 2 pulse pulse pulse = Timer 3 = TimingSource Timer event n milliseconds FPS = 1000 / n 2008 JavaOne SM Conference java.sun.com/javaone 19

20 TimingSource: The code public class SingleTimingSource extends TimingSource implements ActionListener { Timer timer; // Swing timer public SingleTimingSource() { timer = new Timer(20, this); timer.setinitialdelay(0); } public void actionperformed(actionevent ae) { super.timingevent(); // sends pulse to listeners } public void setresolution(int resolution) { timer.setdelay(resolution); } public void setstartdelay(int delay) { timer.setinitialdelay(delay); } } 2008 JavaOne SM Conference java.sun.com/javaone 20

21 Timing Source: Using It static SingleTimingSource timer = new SingleTimingSource(); bouncer = PropertySetter.createAnimator( 2000, this, "y, 0, maxy, 0); bouncer.setrepeatcount(animator.infinite); bouncer.setacceleration(.5f); bouncer.setdeceleration(.5f); bouncer.setresolution(1); bouncer.settimer(timer); bouncer.start(); 2008 JavaOne SM Conference java.sun.com/javaone 21

22 Demo: TimingSource Solution 2008 JavaOne SM Conference java.sun.com/javaone 22

23 Solution #2: Scene Graph Animation Scene Graph animation engine has single-timer concept built in already Clip is the new Animator But gets its timing events from a single timing source = Timer 1 = Timer 2 pulse pulse pulse = Timer 3 = Timeline Timer event n milliseconds FPS = 1000 / n 2008 JavaOne SM Conference java.sun.com/javaone 23

24 Scene Graph Animation: The Code clip = Clip.create(2000, this, "y", 0, maxy, 0); clip.setrepeatcount(clip.indefinite); clip.setinterpolator( Interpolators.getEasingInstance(.5f,.5f)); clip.setresolution(1); clip.start(); 2008 JavaOne SM Conference java.sun.com/javaone 24

25 Demo: Scene Graph Animation Solution 2008 JavaOne SM Conference java.sun.com/javaone 25

26 Agenda Fluffy Introduction Demos and Explanations Way too many Timers! Animated Layout Bling 59 minutes of Q&A Self-Serving Links to More Information 2008 JavaOne SM Conference java.sun.com/javaone 26

27 Animated Layout Transitioning between layout states One approach: Capture before Capture after Animate items between the two states Items do one of three things between states Appear Disappear Change 2008 JavaOne SM Conference java.sun.com/javaone 27

28 Animated Layout Transitioning between layout states One approach: Capture before Capture after Animate items between the two states Items do one of three things between states Appear Disappear Change 2008 JavaOne SM Conference java.sun.com/javaone 28

29 Animated Transitions Captures before/after state Via callback: setupnextscreen() Applies standard effects to each component Appearing: FadeIn Disappearing: FadeOut Changing: Move/Resize No Change: (nothing) Runs animation, which runs all effects Hides container with glass pane Runs animation in glass pane, absolute layout Removes glass pane when done, showing real container 2008 JavaOne SM Conference java.sun.com/javaone 29

30 Demo: Lone Rearranger, Resizing 2008 JavaOne SM Conference java.sun.com/javaone 30

31 Resizing Transition, the Code // Set up transition Animator resizeanimator = new Animator(500); ScreenTransition resizetransition = new ScreenTransition(this, new ResizeTransitionTarget(), resizeanimator); // Handle slider events to change thumbnail size public void statechanged(changeevent ce) { currentsize = slider.getvalue() * 25; if (!resizetransition.getanimator().isrunning()) { resizetransition.start(); } } // Handle transition callback to set up next state public class ResizeTransitionTarget implements TransitionTarget { public void setupnextscreen() { BufferedImage img = images.get(i).getimage(currentsize); // other code to set up background image for slide slides[i].seticon(new ImageIcon(background)); validate(); } } 2008 JavaOne SM Conference java.sun.com/javaone 31

32 Rearranging the Order What about changing the order of items displayed? Can we animate transitions of order changes? Of course we can 2008 JavaOne SM Conference java.sun.com/javaone 32

33 Moving Items Around is a Drag Need lots of visual indicators Show item being dragged Show insertion marker where item would be placed if dropped Indicate insertion marker with different graphics Animate insertion marker to distinguish it and mark is as dynamic Move marker as appropriate with animated transitions, of course! Animate dropping dragged item into place 2008 JavaOne SM Conference java.sun.com/javaone 33

34 Show Dragged Item Drag it around on the glass pane remove() it from container add() it to glass pane setlocation() as the mouse moves // in first drag event remove(draggedcomponent); draggingglasspane.add(draggedcomponent); draggingglasspane.setvisible(true); // for every drag event // [calculate drag location] // set location of component on glass pane draggedcomponent.setlocation(dragx, dragy); 2008 JavaOne SM Conference java.sun.com/javaone 34

35 Make Dragged Item Translucent Differentiates it from other slides Allows user to see everything else below it // Each slide is a custom JLabel public class TranslucentLabel extends JLabel { private Composite translucentcomposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER,.5f); boolean beingdragged = false; } protected void paintcomponent(graphics g) { if (beingdragged) { Graphics2D g2d = (Graphics2D)g; g2d.setcomposite(translucentcomposite); } super.paintcomponent(g); } 2008 JavaOne SM Conference java.sun.com/javaone 35

36 Show Insertion Marker Create marker based on contents of dragged component Get component s index in container Place marker at component s former index insertionmarker = new InsertionMarker((JLabel)draggedComponent); int componentindex = // query container for index add(insertionmarker, componentindex); 2008 JavaOne SM Conference java.sun.com/javaone 36

37 Give Marker a Different Look Show original image, but fade it out around the edges Uses DstIn composite with an alpha mask, like Romain s reflection panel protected void paintcomponent(graphics g) { Graphics2D g2d = markerimage.creategraphics(); g2d.drawimage(origimage, 0, 0, markerimagew, markerimageh, null); float fractions[] = {0f,.2f,.8f, 1f}; Color colors[] = {Color.WHITE, Color.WHITE, new Color(1f,1f,1f,outerAlpha), new Color(1f,1f,1f,outerAlpha)}; gradient = new RadialGradientPaint((float)markerImageW/2, (float)markerimageh/2, (float)markerimagew/2, fractions, colors); g2d.setpaint(gradient); g2d.setcomposite(alphacomposite.dstin); g2d.fillrect(0, 0, markerimagew, markerimageh); g.drawimage(markerimage, 0, 0, null); } 2008 JavaOne SM Conference java.sun.com/javaone 37

38 Animate Marker Indicate that it is dynamic and something the user probably wants to keep tabs on But make it subtle, not too annoying We modulate its look by varying the alpha mask 2008 JavaOne SM Conference java.sun.com/javaone 38

39 Animate Marker: the code // Set up the animation insertionpulse = PropertySetter.createAnimator(500, insertionmarker, "outeralpha", 0f,.7f); insertionpulse.setrepeatcount(animator.infinite); insertionpulse.setrepeatbehavior( Animator.RepeatBehavior.REVERSE); insertionpulse.setstartdelay(500); insertionpulse.start(); // In InsertionMarker, our property setter gets called public void setouteralpha(float alpha) { outeralpha = alpha; repaint(); } // Meanwhile, in paintcomponent(): Color colors[] = {Color.WHITE, Color.WHITE, new Color(1f, 1f, 1f, outeralpha), new Color(1f, 1f, 1f, outeralpha)}; 2008 JavaOne SM Conference java.sun.com/javaone 39

40 Move Marker As user drags component around, move insertion marker Animate these moves by calling insertiontransition int insertionindex = getinsertionindex(dragx, dragy); if (insertionindex!= currentinsertionindex) { currentinsertionindex = insertionindex; insertiontransition.start(); } 2008 JavaOne SM Conference java.sun.com/javaone 40

41 Move Marker (cont d) insertiontransition handles animation of marker moves // Declare transition for marker moves ScreenTransition insertiontransition = new ScreenTransition(this, new InsertionTransitionTarget(), insertionanimator); // InsertionTransitionTarget handles the callback public class InsertionTransitionTarget implements TransitionTarget { public void setupnextscreen() { remove(insertionmarker); add(insertionmarker, currentinsertionindex); validate(); ((JComponent)getRootPane().getGlassPane()). add(draggedcomponent); } } 2008 JavaOne SM Conference java.sun.com/javaone 41

42 Animate the Drop private void insertintoplace() { dragging = false; Point endlocation = insertionmarker.getlocation(); Animator inserter = PropertySetter.createAnimator( 200, draggedcomponent, "location", endlocation); inserter.setacceleration(1f); inserter.addtarget(insertionend); inserter.start(); } public TimingTarget insertionend = new TimingTargetAdapter() { public void end() { remove(insertionmarker); insertionpulse.stop(); insertionpulse = null; add(draggedcomponent, currentinsertionindex); draggedcomponent = null; validate(); } }; 2008 JavaOne SM Conference java.sun.com/javaone 42

43 Demo: Lone Rearranger, What a Drag 2008 JavaOne SM Conference java.sun.com/javaone 43

44 Agenda Fluffy Introduction Demos and Explanations Way too many Timers! Animated Layout Bling 59 minutes of Q&A Self-Serving Links to More Information 2008 JavaOne SM Conference java.sun.com/javaone 44

45 Soft Clipping Clipping is mostly used for performance Graphics.clipRect(x, y, width, height) Clipping can also be used for effects Framing Drawing complex shapes Clipping complex shapes is easy Graphics2D.setClip(Shape) or Graphics2D.clip(Shape) But it sucks! Anti-aliasing does not work 2008 JavaOne SM Conference java.sun.com/javaone 45

46 Soft Clipping Use AlphaComposite Graphics2D g2 = //... // Prepare the clip (instead of calling clip()) g2.fill(clipshape); Composite c = g2.getcomposite(); g2.setcomposite(alphacomposite.srcin); // Draw content g2.setcomposite(c); 2008 JavaOne SM Conference java.sun.com/javaone 46

47 Demo: Showing some love 2008 JavaOne SM Conference java.sun.com/javaone 47

48 Photo Composites Blending in Java2D is easy AlphaComposite But very limited Only affect the alpha channel More composites = more flexibility Photoshop has 20+ composites SwingX offers 30 composites swingx.dev.java.net org.jdesktop.swingx.image.blendcomposite 2008 JavaOne SM Conference java.sun.com/javaone 48

49 Photo Composites 2008 JavaOne SM Conference java.sun.com/javaone 49

50 Photo Composite BlendComposite is used like AlphaComposite Graphics2D g2 = image.creategraphics(); g2.setcomposite(alphacomposite.src); g2.drawimage(imagea, 0, 0, null); g2.setcomposite(blendcomposite.colordodge); g2.setpaint(gradient); g2.fill(getbounds()); g2.dispose(); 2008 JavaOne SM Conference java.sun.com/javaone 50

51 Demo: Animated splash screen 2008 JavaOne SM Conference java.sun.com/javaone 51

52 For More Information (Shameless Self-Promotion) Book defacing (signing) 5:15 (right after this session), bookstore in Moscone South Romain s blog Chet s blog: graphics-geek.blogspot.com Book site demos, libs, links, cool gradient, nifty JavaScript technology animation filthyrichclients.org 2008 JavaOne SM Conference java.sun.com/javaone 52

53 Romain Guy, Google Chet Haase, Adobe Systems 2008 JavaOne SM Conference java.sun.com/javaone 53

Preface. WELCOME to Filthy Rich Clients. This book is about building better, more. Organization

Preface. WELCOME to Filthy Rich Clients. This book is about building better, more. Organization Preface WELCOME to Filthy Rich Clients. This book is about building better, more effective, and cooler desktop applications using graphical and animated effects. We started writing this book after our

More information

Swing and you are winning

Swing and you are winning Swing and you are winning Pimp your user interface with the power of the swing framework. Tuning a standard user interface with gradients, custom components and validating text fields using the JGlassPane.

More information

Bringing Life to Swing Desktop Applications

Bringing Life to Swing Desktop Applications Bringing Life to Swing Desktop Applications Alexander Potochkin Sun Microsystems Kirill Grouchnikov Amdocs Inc. TS-3414 2007 JavaOne SM Conference Session TS-3414 Presentation Goal Learn advanced painting

More information

Swinging from the Outside

Swinging from the Outside Swinging from the Outside A guide to navigating Swing from the outside of Sun Brian Mason, Dir Software of Engineering, Teseda S295599 Space is big, really big. You might think it is a long way down to

More information

Advanced Effects in Java Desktop Applications

Advanced Effects in Java Desktop Applications Advanced Effects in Java Desktop Applications Kirill Grouchnikov, Senior Software Engineer, Amdocs kirillcool@yahoo.com http://www.pushing-pixels.org OSCON 2007 Agenda Swing pipeline Hooking into the pipeline

More information

Swing Rocks - A Tribute to Filthy Rich Clients

Swing Rocks - A Tribute to Filthy Rich Clients Swing Rocks - A Tribute to Filthy Rich Clients Pär Sikö, Martin Gunnarsson Epsilon Information Technology One way that Pollak has found to speed up JavaTM programs is to rewrite their user interfaces in

More information

Graphical User Interfaces (GUIs)

Graphical User Interfaces (GUIs) CMSC 132: Object-Oriented Programming II Graphical User Interfaces (GUIs) Department of Computer Science University of Maryland, College Park Model-View-Controller (MVC) Model for GUI programming (Xerox

More information

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

Outline. Topic 9: Swing. GUIs Up to now: line-by-line programs: computer displays text user types text AWT. A. Basics Topic 9: Swing Outline Swing = Java's GUI library Swing is a BIG library Goal: cover basics give you concepts & tools for learning more Assignment 7: Expand moving shapes from Assignment 4 into game. "Programming

More information

Kirill Grouchnikov, Amdocs Desktop Matters Conference San Jose, March

Kirill Grouchnikov, Amdocs Desktop Matters Conference San Jose, March Kirill Grouchnikov, Amdocs Desktop Matters Conference San Jose, March 8-9 2007 Show two sample effects on buttons Show how this can be achieved with UI delegates Discuss alternative implementations Custom

More information

Widget Toolkits CS MVC

Widget Toolkits CS MVC Widget Toolkits 1 CS349 -- MVC Widget toolkits Also called widget libraries or GUI toolkits or GUI APIs Software bundled with a window manager, operating system, development language, hardware platform

More information

<Insert Picture Here> JavaFX 2.0

<Insert Picture Here> JavaFX 2.0 1 JavaFX 2.0 Dr. Stefan Schneider Chief Technologist ISV Engineering The following is intended to outline our general product direction. It is intended for information purposes only,

More information

Assignment 2. Application Development

Assignment 2. Application Development Application Development Assignment 2 Content Application Development Day 2 Lecture The lecture covers the key language elements of the Java programming language. You are introduced to numerical data and

More information

Extreme Swing. Romain Guy Sun Microsystems.

Extreme Swing. Romain Guy Sun Microsystems. Extreme Swing Romain Guy Sun Microsystems Overall Presentation Goal Learn how to create modern user interfaces with Swing Agenda About user interfaces Add a new dimension Swing and Java2D Going further

More information

GUI DYNAMICS Lecture July 26 CS2110 Summer 2011

GUI DYNAMICS Lecture July 26 CS2110 Summer 2011 GUI DYNAMICS Lecture July 26 CS2110 Summer 2011 GUI Statics and GUI Dynamics 2 Statics: what s drawn on the screen Components buttons, labels, lists, sliders, menus,... Containers: components that contain

More information

What s New in QuarkXPress 2018

What s New in QuarkXPress 2018 What s New in QuarkXPress 2018 Contents What s New in QuarkXPress 2018...1 Digital publishing...2 Export as Android App...2 HTML5 enhancements...3 Configuration changes...5 Graphics...7 Transparency blend

More information

Graphics. Lecture 18 COP 3252 Summer June 6, 2017

Graphics. Lecture 18 COP 3252 Summer June 6, 2017 Graphics Lecture 18 COP 3252 Summer 2017 June 6, 2017 Graphics classes In the original version of Java, graphics components were in the AWT library (Abstract Windows Toolkit) Was okay for developing simple

More information

G51PRG: Introduction to Programming Second semester Applets and graphics

G51PRG: Introduction to Programming Second semester Applets and graphics G51PRG: Introduction to Programming Second semester Applets and graphics Natasha Alechina School of Computer Science & IT nza@cs.nott.ac.uk Previous two lectures AWT and Swing Creating components and putting

More information

This book will help you quickly create your first documents, spreadsheets, and slideshows.

This book will help you quickly create your first documents, spreadsheets, and slideshows. Getting Started Welcome to iwork 08 Preface This book will help you quickly create your first documents, spreadsheets, and slideshows. iwork 08 includes three applications that integrate seamlessly with

More information

Editing in Premiere Pro CC 2015

Editing in Premiere Pro CC 2015 Editing in Premiere Pro CC 2015 Lesson 1: Exploring the Interface Exploring the Interface The Source Window The Program Window The Settings Menu Revealing the Video Scopes The Workspace Bar The Project

More information

T his article is downloaded from

T his article is downloaded from Fading Elements with JQuery The fade effect is when an element fades out by becoming increasingly transparent over time until it disappears or fades in by becoming decreasingly opaque over time until it

More information

Introduction to Kaltura

Introduction to Kaltura Introduction to Kaltura The Kaltura media content management system allows users to record, stream, and manage multimedia files. This industry-leading enterprise system offers many robust tools. This guide

More information

CSC 160 LAB 8-1 DIGITAL PICTURE FRAME. 1. Introduction

CSC 160 LAB 8-1 DIGITAL PICTURE FRAME. 1. Introduction CSC 160 LAB 8-1 DIGITAL PICTURE FRAME PROFESSOR GODFREY MUGANDA DEPARTMENT OF COMPUTER SCIENCE 1. Introduction Download and unzip the images folder from the course website. The folder contains 28 images

More information

Object Orientated Programming in Java. Benjamin Kenwright

Object Orientated Programming in Java. Benjamin Kenwright Graphics Object Orientated Programming in Java Benjamin Kenwright Outline Essential Graphical Principals JFrame Window (Popup Windows) Extending JFrame Drawing from paintcomponent Drawing images/text/graphics

More information

Downloaded from

Downloaded from Chapter 4 Advance features of MS PowerPoint Inside this chapter : Inserting different objects (i.e. images, Word Arts, audio & video etc.), Transitions in slide, Custom Animation with text. PowerPoint

More information

Adobe Flash Course Syllabus

Adobe Flash Course Syllabus Adobe Flash Course Syllabus A Quick Flash Demo Introducing the Flash Interface Adding Elements to the Stage Duplicating Library Items Introducing Keyframes, the Transform Tool & Tweening Creating Animations

More information

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

Topic 9: Swing. Swing is a BIG library Goal: cover basics give you concepts & tools for learning more Swing = Java's GUI library Topic 9: Swing Swing is a BIG library Goal: cover basics give you concepts & tools for learning more Assignment 5: Will be an open-ended Swing project. "Programming Contest"

More information

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!

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! Swing = Java's GUI library Topic 9: Swing Swing is a BIG library Goal: cover basics give you concepts & tools for learning more Why are we studying Swing? 1. Useful & fun! 2. Good application of OOP techniques

More information

1. Multimedia authoring is the process of creating a multimedia production:

1. Multimedia authoring is the process of creating a multimedia production: Chapter 8 1. Multimedia authoring is the process of creating a multimedia production: Creating/assembling/sequencing media elements Adding interactivity Testing (Alpha/Beta) Packaging Distributing to end

More information

PowerPoint X. 1. The Project Gallery window with the PowerPoint presentation icon already selected. 2. Click on OK.

PowerPoint X. 1. The Project Gallery window with the PowerPoint presentation icon already selected. 2. Click on OK. PowerPoint X Launching PowerPointX 1. Start PowerPointX by clicking on the PowerPoint icon in the dock or finding it in the hard drive in the Applications folder under Microsoft PowerPoint. PowerPoint

More information

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

KF5008 Program Design & Development. Lecture 1 Usability GUI Design and Implementation KF5008 Program Design & Development Lecture 1 Usability GUI Design and Implementation Types of Requirements Functional Requirements What the system does or is expected to do Non-functional Requirements

More information

9 Using Appearance Attributes, Styles, and Effects

9 Using Appearance Attributes, Styles, and Effects 9 Using Appearance Attributes, Styles, and Effects You can alter the look of an object without changing its structure using appearance attributes fills, strokes, effects, transparency, blending modes,

More information

Frontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević

Frontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević Frontend guide Everything you need to know about HTML, CSS, JavaScript and DOM Dejan V Čančarević Today frontend is treated as a separate part of Web development and therefore frontend developer jobs are

More information

CSE 331 Software Design & Implementation

CSE 331 Software Design & Implementation CSE 331 Software Design & Implementation Kevin Zatloukal Summer 2017 Java Graphics and GUIs (Based on slides by Mike Ernst, Dan Grossman, David Notkin, Hal Perkins, Zach Tatlock) Review: how to create

More information

Composite Pattern Diagram. Explanation. JavaFX Subclass Hierarchy, cont. JavaFX: Node. JavaFX Layout Classes. Top-Level Containers 10/12/2018

Composite Pattern Diagram. Explanation. JavaFX Subclass Hierarchy, cont. JavaFX: Node. JavaFX Layout Classes. Top-Level Containers 10/12/2018 Explanation Component has Operation( ), which is a method that applies to all components, whether composite or leaf. There are generally many operations. Component also has composite methods: Add( ), Remove(

More information

PowerPoint 2010 Quick Start

PowerPoint 2010 Quick Start PowerPoint is a slide show presentation program. Use a slide show to convey your message to an audience. PowerPoint can be used for education, employee orientation, business promotion, team motivation,

More information

PowerPoint Tutorial 2: Adding and Modifying Text and Graphic Objects 2013

PowerPoint Tutorial 2: Adding and Modifying Text and Graphic Objects 2013 PowerPoint Tutorial 2: Adding and Modifying Text and Graphic Objects Microsoft Office 2013 2013 Objectives Insert a graphic from a file Insert, resize, and reposition clip art Modify the color and shape

More information

AP CS Unit 11: Graphics and Events

AP CS Unit 11: Graphics and Events AP CS Unit 11: Graphics and Events This packet shows how to create programs with a graphical interface in a way that is consistent with the approach used in the Elevens program. Copy the following two

More information

STRANDS AND STANDARDS

STRANDS AND STANDARDS STRANDS AND STANDARDS Course Description Web Development is a course designed to guide students in a project-based environment in the development of up-to-date concepts and skills that are used in the

More information

Adobe Flash CS3 Reference Flash CS3 Application Window

Adobe Flash CS3 Reference Flash CS3 Application Window Adobe Flash CS3 Reference Flash CS3 Application Window When you load up Flash CS3 and choose to create a new Flash document, the application window should look something like the screenshot below. Layers

More information

Lecture 5: Java Graphics

Lecture 5: Java Graphics Lecture 5: Java Graphics CS 62 Spring 2019 William Devanny & Alexandra Papoutsaki 1 New Unit Overview Graphical User Interfaces (GUI) Components, e.g., JButton, JTextField, JSlider, JChooser, Containers,

More information

Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms.

Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms. Java GUI Windows Events Drawing 1 Java GUI Toolkits Toolkit AWT Description Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms.

More information

COMP : Practical 8 ActionScript II: The If statement and Variables

COMP : Practical 8 ActionScript II: The If statement and Variables COMP126-2006: Practical 8 ActionScript II: The If statement and Variables The goal of this practical is to introduce the ActionScript if statement and variables. If statements allow us to write scripts

More information

Flash offers a way to simplify your work, using symbols. A symbol can be

Flash offers a way to simplify your work, using symbols. A symbol can be Chapter 7 Heavy Symbolism In This Chapter Exploring types of symbols Making symbols Creating instances Flash offers a way to simplify your work, using symbols. A symbol can be any object or combination

More information

GWT and jmaki: Expanding the GWT Universe. Carla Mott, Staff Engineer, Sun Microsystems Greg Murray, Ajax Architect, Sun Microsystems

GWT and jmaki: Expanding the GWT Universe. Carla Mott, Staff Engineer, Sun Microsystems Greg Murray, Ajax Architect, Sun Microsystems GWT and jmaki: Expanding the GWT Universe Carla Mott, Staff Engineer, Sun Microsystems Greg Murray, Ajax Architect, Sun Microsystems Learn how to enhance Google Web Toolkit (GWT) to include many Ajax enabled

More information

Widgets. Widgets Widget Toolkits. User Interface Widget

Widgets. Widgets Widget Toolkits. User Interface Widget Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

Advanced Java Unit 6: Review of Graphics and Events

Advanced Java Unit 6: Review of Graphics and Events Advanced Java Unit 6: Review of Graphics and Events This is a review of the basics of writing a java program that has a graphical interface. To keep things simple, all of the graphics programs will follow

More information

PowerPoint Launching PowerPointX

PowerPoint Launching PowerPointX PowerPoint 2004 Launching PowerPointX 1. Start PowerPoint by clicking on the PowerPoint icon in the dock or finding it in the hard drive in the Applications folder under Microsoft Office 2004. PowerPoint

More information

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

Command-Line Applications. GUI Libraries GUI-related classes are defined primarily in the java.awt and the javax.swing packages. 1 CS257 Computer Science I Kevin Sahr, PhD Lecture 14: Graphical User Interfaces Command-Line Applications 2 The programs we've explored thus far have been text-based applications A Java application is

More information

Graphic Interface Programming II Events and Threads. Uppsala universitet

Graphic Interface Programming II Events and Threads. Uppsala universitet Graphic Interface Programming II Events and Threads IT Uppsala universitet Animation Animation adds to user experience Done right, it enhances the User Interface Done wrong, it distracts and irritates

More information

Proctors are unable to respond to queries about the interpretation of exam questions. Do your best to answer exam questions as written.

Proctors are unable to respond to queries about the interpretation of exam questions. Do your best to answer exam questions as written. HAND IN Answers Are Recorded on Question Paper QUEEN'S UNIVERSITY SCHOOL OF COMPUTING CISC124, WINTER TERM, 2009 FINAL EXAMINATION 7pm to 10pm, 18 APRIL 2009, Dunning Hall Instructor: Alan McLeod If the

More information

Java Programming Lecture 6

Java Programming Lecture 6 Java Programming Lecture 6 Alice E. Fischer Feb 15, 2013 Java Programming - L6... 1/32 Dialog Boxes Class Derivation The First Swing Programs: Snow and Moving The Second Swing Program: Smile Swing Components

More information

Impress Guide. Chapter 1 Introducing Impress

Impress Guide. Chapter 1 Introducing Impress Impress Guide Chapter 1 Introducing Impress Copyright This document is Copyright 2005 2009 by its contributors as listed in the section titled Authors. You may distribute it and/or modify it under the

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

CS 2110 Fall Instructions. 1 Installing the code. Homework 4 Paint Program. 0.1 Grading, Partners, Academic Integrity, Help

CS 2110 Fall Instructions. 1 Installing the code. Homework 4 Paint Program. 0.1 Grading, Partners, Academic Integrity, Help CS 2110 Fall 2012 Homework 4 Paint Program Due: Wednesday, 12 November, 11:59PM In this assignment, you will write parts of a simple paint program. Some of the functionality you will implement is: 1. Freehand

More information

Impress Guide Chapter 1 Introducing Impress

Impress Guide Chapter 1 Introducing Impress Impress Guide Chapter 1 Introducing Impress This PDF is designed to be read onscreen, two pages at a time. If you want to print a copy, your PDF viewer should have an option for printing two pages on one

More information

Step 1: Create A New Photoshop Document

Step 1: Create A New Photoshop Document Snowflakes Photo Border In this Photoshop tutorial, we ll learn how to create a simple snowflakes photo border, which can be a fun finishing touch for photos of family and friends during the holidays,

More information

The JFrame Class Frame Windows GRAPHICAL USER INTERFACES. Five steps to displaying a frame: 1) Construct an object of the JFrame class

The JFrame Class Frame Windows GRAPHICAL USER INTERFACES. Five steps to displaying a frame: 1) Construct an object of the JFrame class CHAPTER GRAPHICAL USER INTERFACES 10 Slides by Donald W. Smith TechNeTrain.com Final Draft 10/30/11 10.1 Frame Windows Java provides classes to create graphical applications that can run on any major graphical

More information

Graphics and Painting

Graphics and Painting Graphics and Painting Lecture 17 CGS 3416 Fall 2015 November 30, 2015 paint() methods Lightweight Swing components that extend class JComponent have a method called paintcomponent, with this prototype:

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 32 April 9, 2018 Swing I: Drawing and Event Handling Chapter 29 HW8: Spellchecker Available on the web site Due: Tuesday! Announcements Parsing, working

More information

Avoid Common Pitfalls when Programming 2D Graphics in Java: Lessons Learnt from Implementing the Minueto Toolkit

Avoid Common Pitfalls when Programming 2D Graphics in Java: Lessons Learnt from Implementing the Minueto Toolkit Avoid Common Pitfalls when Programming 2D Graphics in Java: Lessons Learnt from Implementing the Minueto Toolkit Minueto is a platform independent game development framework written in Java, specifically

More information

Week Lesson Assignment SD Technology Standards. Knowledge Check. Project Project Project Power Point 3.1. Power Point 3.

Week Lesson Assignment SD Technology Standards. Knowledge Check. Project Project Project Power Point 3.1. Power Point 3. 1 Photoshop Lesson 1: Intro to Photoshop About Photoshop Power Point Fix a bad photo and optimize it for the web. Import & crop Masterbed 1 Lesson 2: Staging area Use the Photoshop interface. Set and delete

More information

Inheritance. One class inherits from another if it describes a specialized subset of objects Terminology:

Inheritance. One class inherits from another if it describes a specialized subset of objects Terminology: Inheritance 1 Inheritance One class inherits from another if it describes a specialized subset of objects Terminology: the class that inherits is called a child class or subclass the class that is inherited

More information

ANIMATOR TIMELINE EDITOR FOR UNITY

ANIMATOR TIMELINE EDITOR FOR UNITY ANIMATOR Thanks for purchasing! This document contains a how-to guide and general information to help you get the most out of this product. Look here first for answers and to get started. What s New? v1.53

More information

PowerPoint Tips and Tricks

PowerPoint Tips and Tricks PowerPoint Tips and Tricks Viewing Your Presentation PowerPoint provides multiple ways to view your slide show presentation. You can access these options either through a toolbar on your screen or by pulling

More information

Java FX 2.0. Dr. Stefan Schneider Oracle Deutschland Walldorf-Baden

Java FX 2.0. Dr. Stefan Schneider Oracle Deutschland Walldorf-Baden Java FX 2.0 Dr. Stefan Schneider Oracle Deutschland Walldorf-Baden Keywords: JavaFX, Rich, GUI, Road map. Introduction This presentation gives an introduction into JavaFX. It introduces the key features

More information

Creating Professional Swing UIs Using the NetBeans GUI Builder

Creating Professional Swing UIs Using the NetBeans GUI Builder Creating Professional Swing UIs Using the NetBeans GUI Builder Tomas Pavek, Jan Stola, Scott Violet Sun Microsystems http://www.netbeans.org http://swinglabs.dev.java.net TS-4916 Copyright 2006, Sun Microsystems,

More information

Introduction to PowerPoint 2007

Introduction to PowerPoint 2007 Introduction to PowerPoint 2007 PowerPoint is one of the programs included in the Microsoft Office suite. It s used to create presentations, also called slide shows, that are typically displayed via a

More information

Graphic User Interfaces. - GUI concepts - Swing - AWT

Graphic User Interfaces. - GUI concepts - Swing - AWT Graphic User Interfaces - GUI concepts - Swing - AWT 1 What is GUI Graphic User Interfaces are used in programs to communicate more efficiently with computer users MacOS MS Windows X Windows etc 2 Considerations

More information

UI Software Organization

UI Software Organization UI Software Organization The user interface From previous class: Generally want to think of the UI as only one component of the system Deals with the user Separate from the functional core (AKA, the app

More information

Lecture 3: Java Graphics & Events

Lecture 3: Java Graphics & Events Lecture 3: Java Graphics & Events CS 62 Fall 2017 Kim Bruce & Alexandra Papoutsaki Text Input Scanner class Constructor: myscanner = new Scanner(System.in); can use file instead of System.in new Scanner(new

More information

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

Object-Oriented Programming Design. Topic : Graphics Programming GUI Part I Electrical and Computer Engineering Object-Oriented Topic : Graphics GUI Part I Maj Joel Young Joel.Young@afit.edu 15-Sep-03 Maj Joel Young A Brief History Lesson AWT Abstract Window Toolkit Implemented

More information

animation, and what interface elements the Flash editor contains to help you create and control your animation.

animation, and what interface elements the Flash editor contains to help you create and control your animation. e r ch02.fm Page 43 Wednesday, November 15, 2000 8:52 AM c h a p t 2 Animating the Page IN THIS CHAPTER Timelines and Frames Movement Tweening Shape Tweening Fading Recap Advanced Projects You have totally

More information

Adobe Photoshop CS5 Advanced. Course Outline. Course Length: 1 Day. Course Overview

Adobe Photoshop CS5 Advanced. Course Outline. Course Length: 1 Day. Course Overview Adobe Photoshop CS5 Advanced Course Length: 1 Day Course Overview Photoshop CS5: Advanced is the second of three titles in this series. In this course, students will learn how to use color fills, gradients,

More information

Programming graphics

Programming graphics Programming graphics Need a window javax.swing.jframe Several essential steps to use (necessary plumbing ): Set the size width and height in pixels Set a title (optional), and a close operation Make it

More information

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1 Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,

More information

Web 2.0: Next Generation Communities With Rich Java -Based Applications

Web 2.0: Next Generation Communities With Rich Java -Based Applications Web 2.0: Next Generation Communities With Rich Java -Based Applications Matthew Schmidt VP of Technology DeveloperZone, Inc. http://www.developerzone.com TS-1375 Michael Urban Software Engineer DeveloperZone,

More information

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) UI Elements 1 2D Sprites If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) Change Sprite Mode based on how many images are contained in your texture If you are

More information

PowerPoint. Tutorial 1 Creating a Presentation. Tutorial 2 Applying and Modifying Text and Graphic Objects

PowerPoint. Tutorial 1 Creating a Presentation. Tutorial 2 Applying and Modifying Text and Graphic Objects PowerPoint Tutorial 1 Creating a Presentation Tutorial 2 Applying and Modifying Text and Graphic Objects Tutorial 3 Adding Special Effects to a Presentation COMPREHENSIVE PowerPoint Tutorial 1 Creating

More information

Photoshop Basics A quick introduction to the basic tools in Photoshop

Photoshop Basics A quick introduction to the basic tools in Photoshop Photoshop Basics A quick introduction to the basic tools in Photoshop Photoshop logo courtesy Adobe Systems Inc. By Dr. Anthony R. Curtis Mass Communication Department University of North Carolina at Pembroke

More information

Creating a Presentation

Creating a Presentation Creating a Presentation Objectives Open and view a presentation Create a new presentation Enter and format slide text Apply a theme Add and modify clip art Add and modify shapes Create SmartArt Insert

More information

Impress Guide. Chapter 1 Introducing Impress

Impress Guide. Chapter 1 Introducing Impress Impress Guide Chapter 1 Introducing Impress Copyright This document is Copyright 2005 2010 by its contributors as listed below. You may distribute it and/or modify it under the terms of either the GNU

More information

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

Introduction to Graphical User Interfaces (GUIs) Lecture 10 CS2110 Fall 2008 Introduction to Graphical User Interfaces (GUIs) Lecture 10 CS2110 Fall 2008 Announcements A3 is up, due Friday, Oct 10 Prelim 1 scheduled for Oct 16 if you have a conflict, let us know now 2 Interactive

More information

Table of Contents. Preface... xiii

Table of Contents. Preface... xiii Table of Contents Preface...................................................... xiii Part I. SVG on the Web 1. Graphics from Vectors....................................... 3 Defining an SVG in Code 4 Simple

More information

User interfaces and Swing

User interfaces and Swing User interfaces and Swing Overview, applets, drawing, action listening, layout managers. APIs: java.awt.*, javax.swing.*, classes names start with a J. Java Lectures 1 2 Applets public class Simple extends

More information

System Configuration and 3D in Photoshop CS5

System Configuration and 3D in Photoshop CS5 CHAPTER 1 System Configuration and 3D in Photoshop CS5 The Adobe Photoshop application works closely with your computer s hardware profile to use its capabilities most efficiently. This smart relationship

More information

AnimatedImage.java. Page 1

AnimatedImage.java. Page 1 1 import javax.swing.japplet; 2 import javax.swing.jbutton; 3 import javax.swing.jpanel; 4 import javax.swing.jcombobox; 5 import javax.swing.jlabel; 6 import javax.swing.imageicon; 7 import javax.swing.swingutilities;

More information

CHAPTER 1. Interface Overview 3 CHAPTER 2. Menus 17 CHAPTER 3. Toolbars and Tools 33 CHAPTER 4. Timelines and Screens 61 CHAPTER 5.

CHAPTER 1. Interface Overview 3 CHAPTER 2. Menus 17 CHAPTER 3. Toolbars and Tools 33 CHAPTER 4. Timelines and Screens 61 CHAPTER 5. FLASH WORKSPACE CHAPTER 1 Interface Overview 3 CHAPTER 2 Menus 17 CHAPTER 3 Toolbars and Tools 33 CHAPTER 4 Timelines and Screens 61 CHAPTER 5 Panels 69 CHAPTER 6 Preferences and Printing 93 COPYRIGHTED

More information

Creating a Special PowerPoint Title Slide Using WordArt

Creating a Special PowerPoint Title Slide Using WordArt Creating a Special PowerPoint Title Slide Using WordArt 1. Open a new slideshow and delete the topic and content textboxes 2. Click on the Insert tab and click on the WordArt tool icon. (Suggestion: start

More information

Windows and Events. created originally by Brian Bailey

Windows and Events. created originally by Brian Bailey Windows and Events created originally by Brian Bailey Announcements Review next time Midterm next Friday UI Architecture Applications UI Builders and Runtimes Frameworks Toolkits Windowing System Operating

More information

Adobe Photoshop Sh S.K. Sublania and Sh. Naresh Chand

Adobe Photoshop Sh S.K. Sublania and Sh. Naresh Chand Adobe Photoshop Sh S.K. Sublania and Sh. Naresh Chand Photoshop is the software for image processing. With this you can manipulate your pictures, either scanned or otherwise inserted to a great extant.

More information

COPYRIGHTED MATERIAL PHOTOSHOP WORKSPACE. Interface Overview 3. Menus 15. The Toolbox 29. Palettes 61. Presets and Preferences 83 WEB TASKS

COPYRIGHTED MATERIAL PHOTOSHOP WORKSPACE. Interface Overview 3. Menus 15. The Toolbox 29. Palettes 61. Presets and Preferences 83 WEB TASKS PHOTOSHOP WORKSPACE CHAPTER 1 Interface Overview 3 CHAPTER 2 Menus 15 CHAPTER 3 The Toolbox 29 CHAPTER 4 Palettes 61 CHAPTER 5 Presets and Preferences 83 COPYRIGHTED MATERIAL PHOTOSHOP WORK SPACE UNIVERSAL

More information

Graphical User Interfaces. Comp 152

Graphical User Interfaces. Comp 152 Graphical User Interfaces Comp 152 Procedural programming Execute line of code at a time Allowing for selection and repetition Call one function and then another. Can trace program execution on paper from

More information

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

Introduction to Graphical Interface Programming in Java. Introduction to AWT and Swing Introduction to Graphical Interface Programming in Java Introduction to AWT and Swing GUI versus Graphics Programming Graphical User Interface (GUI) Graphics Programming Purpose is to display info and

More information

Center for Faculty Development and Support Creating Powerful and Accessible Presentation

Center for Faculty Development and Support Creating Powerful and Accessible Presentation Creating Powerful and Accessible Presentation PowerPoint 2007 Windows Tutorial Contents Create a New Document... 3 Navigate in the Normal View (default view)... 3 Input and Manipulate Text in a Slide...

More information

Advanced PowerPoint Skills

Advanced PowerPoint Skills Table of Contents Advanced PowerPoint Skills 1 Applying the Dim Feature... 2 Adding Sound... 5 Adding Video... 7 Hyperlinks... 8 Linking to a place in the same document... 8 Linking to a different document...

More information

Animating Layers with Timelines

Animating Layers with Timelines Animating Layers with Timelines Dynamic HTML, or DHTML, refers to the combination of HTML with a scripting language that allows you to change style or positioning properties of HTML elements. Timelines,

More information

Qt + Maemo development

Qt + Maemo development ES3 Lecture 11 Qt + Maemo development Maemo Nokia's Linux based platform Almost entirely open source Nokia N770, N800, N810, N900 only models Only N900 has 3G/phone capability N900 has relatively fast

More information

New Perspectives Microsoft Office 365 and PowerPoint 2016 Comprehensive 1st Edition Pinard TEST BANK

New Perspectives Microsoft Office 365 and PowerPoint 2016 Comprehensive 1st Edition Pinard TEST BANK New Perspectives Microsoft Office 365 and PowerPoint 2016 Comprehensive 1st Edition Pinard TEST BANK Full download at: https://testbankreal.com/download/new-perspectives-microsoft-office-365-powerpoint-

More information

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

Graphics programming. COM6516 Object Oriented Programming and Design Adam Funk (originally Kirill Bogdanov & Mark Stevenson) Graphics programming COM6516 Object Oriented Programming and Design Adam Funk (originally Kirill Bogdanov & Mark Stevenson) Overview Aims To provide an overview of Swing and the AWT To show how to build

More information