Swinging from the Outside

Size: px
Start display at page:

Download "Swinging from the Outside"

Transcription

1 Swinging from the Outside A guide to navigating Swing from the outside of Sun Brian Mason, Dir Software of Engineering, Teseda S295599

2 Space is big, really big. You might think it is a long way down to the chemist's, but that is peanuts to space. Swing toolkit, however, isn't that big, but it is still pretty big. Starting out it can be confusing. Understanding common issues and finding solutions is a key to successfully navigating Swing toolkit. By the end of this presentation, you will have an idea of the issues and a direction to start creating cool Swing Applications 2008 JavaOne SM Conference java.sun.com/javaone 2

3 A quick search of some Swing toolkit helpers Swing Java 2D JOGL Java 3D JSR-295 SwingX Java FX SWT JDIC JChart JSR-295 JBuilder JGoodies JXLayers Netbeans InteliJ ILOG Eclipse Timing Framework 2008 JavaOne SM Conference java.sun.com/javaone 3

4 Why Would a New Swing toolkit Developer be Confused? 2008 JavaOne SM Conference java.sun.com/javaone 4

5 Agenda Classification of Swing Applications Application Frameworks Threading and Task Management Making the User Wait Making it pretty Q&A 2008 JavaOne SM Conference java.sun.com/javaone 5

6 Classification of Swing Applications Purpose of classification is to understand what is important Focus discussion Recognize not all applications need the same things Classification is basically understanding the user Many other parameters go into user understanding besides target use Two broad classifications of Swing Apps are: Consumer Applications Business Applications 2008 JavaOne SM Conference java.sun.com/javaone 6

7 Business Applications Maybe Mission Critical Often set UI guidelines, Used All day Skinning not needed (or desired) Use of Animation and colors often controlled Needs to be very stable UI Must minimize eye strain I18N always a good idea, but localization often not needed Apps often not run as admin Example, OC UI Guidelines 2008 JavaOne SM Conference java.sun.com/javaone 7

8 Consumer Applications Less formal UI More Glitz allowed/expected Maybe used for shorter periods of time Varied user base. I18N and L10N very important Personalization such as Skins, important Often app is run as Admin on windows 2008 JavaOne SM Conference java.sun.com/javaone 8

9 Agenda Classification of Swing Applications Application Frameworks Threading and Task Management Making the User Wait Making it pretty Q&A 2008 JavaOne SM Conference java.sun.com/javaone 9

10 Application Framework Definition from Wikipedia: A software framework is a re-usable design for a software system (or subsystem) A Guideline/best practices and set of helper classes to build an application We are not talking about frameworks for: Animation UI Handling RDBMS Access An application framework is for the whole application, not small, yet important parts. Component Libraries are not frameworks 2008 JavaOne SM Conference java.sun.com/javaone 10

11 Qualities of Good Application Frameworks SIMPLE, SIMPLE and SIMPLE Is not intrusive, can be used or not (At the same time) Helps With Resource Management Thread Management Life Cycle Has a Standard Look and Feel? Same on all platforms? Matches Platform? Allows for Branding / Matching Corp UI standards If it is just as hard to develop the app with the framework as without, then it hasn't saved you any work (J. Murphy) 2008 JavaOne SM Conference java.sun.com/javaone 11

12 Example of Bad A framework requires all Windows derived from a base class Does everything a Special Way Does not allow components to move between applications Resources are stored centrally Functionality is tied to a named class Think MFC 2008 JavaOne SM Conference java.sun.com/javaone 12

13 Example Application Frameworks Great Frameworks we will not discuss The Brian Framework The John Framework The great unified Framework Cool looking Frameworks Swing Application Framework (Java Specification Request 296) Jmatter Starter Code from IDE 2008 JavaOne SM Conference java.sun.com/javaone 13

14 The Swing Framework (JSR-296), How does it line up? Does it meet the test Is it Simple? Does it stay out of your way? Helps With Resource Management Thread Management Life Cycle Has a Standard Look and Feel? Hold the thought. Lets Look at the Demo!!! 2008 JavaOne SM Conference java.sun.com/javaone 14

15 Simple JSR-296 Application 2008 JavaOne SM Conference java.sun.com/javaone 15

16 Advice for all Frameworks, libraries,blogs and books Double Check Everything Learn Basic Swing Toolkit Rules Do not assume things are correct If code uses threads, double check it again Check the code into Source Control Check Threading! Threading errors in book code Use Static Analysis for Threading JavaOne SM Conference java.sun.com/javaone 16

17 Agenda Classification of Swing Applications Application Frameworks Threading and Task Management Making the User Wait Making it pretty Q&A 2008 JavaOne SM Conference java.sun.com/javaone 17

18 Embrace the Horror You cannot avoid multi-threaded Swing tookit Event Dispatch Thread (EDT) Do not block the EDT; EVER File System Access Network Access DB Access Even long memory based task, like sorting Swing Calls, unless specifically document otherwise, must be ON the EDT 2008 JavaOne SM Conference java.sun.com/javaone 18

19 Bad Threading Example (EDT Handler) Jlist filelist=new JList(); File dir=new File("."); File[] list=dir.listfiles(); DefaultListModel model=new DefaultListModel(); for(file f:list){ model.addelement(f.getname()); } filelist.setmodel(model); 2008 JavaOne SM Conference java.sun.com/javaone 19

20 Perfuming the hog (Threaded Handler) Runnable run = new Runnable() { public void run() { File dir = new File("."); File[] list = dir.listfiles(); DefaultListModel model = new DefaultListModel(); for (File f : list) { model.addelement(f.getname()); } filelist.setmodel(model);} }; Thread t=new Thread(run); t.start(); 2008 JavaOne SM Conference java.sun.com/javaone 20

21 Legal Thread Solution Runnable run = new Runnable() { public void run() { File dir = new File("."); File[] list = dir.listfiles(); DefaultListModel model = new DefaultListModel(); for (File f : list) { model.addelement(f.getname()); } loadthemodelsafely(model)} }; ExecutorService background=somefactory.getbackgroundexec() background.submit(run); 2008 JavaOne SM Conference java.sun.com/javaone 21

22 Legal Thread Solution Slide 2 void loadthemodelsafely(final ListModel model){ Runnable run=new Runnable(){ public void run(){ list.setmodel(model); } } } if(swingutilities.iseventdispatchthread()){ run.run(); }else{ //try catch block ommitted for readability SwingUtilities.invokeAndWait(run); } 2008 JavaOne SM Conference java.sun.com/javaone 22

23 Actions Meets Swing Worker A humble example of cleaner solution for blocking task Like Swing Worker but ties to actions Uses Swing Utils and threading behind the scene Has three abstract methods: preuiwork backgroundwork postuiwork 2008 JavaOne SM Conference java.sun.com/javaone 23

24 Threaded Actions Example class BlockingButtonAction extends BlockingAction{ public void preuiwork(actionevent e) { parent.setglasspane(gp); gp.setvisible(true);} public Object backgroundwork(actionevent e){ Thread.sleep(20000); return null;} public void postuiwork(actionevent e,object resultsfrombackground, Throwable error) { gp.setvisible(false); } 2008 JavaOne SM Conference java.sun.com/javaone 24

25 Threaded Actions 2008 JavaOne SM Conference java.sun.com/javaone 25

26 JSR-296 Actions Actions defined annotation on methods Must Bind Action to Components Handles Blocking and non-blocking actions Reporting method built in 2008 JavaOne SM Conference java.sun.com/javaone 26

27 JSR-296 Actions 2008 JavaOne SM Conference java.sun.com/javaone 27

28 Agenda Classification of Swing Applications Application Frameworks Threading and Task Management Making the User Wait Making it pretty Q&A 2008 JavaOne SM Conference java.sun.com/javaone 28

29 Blocking The User It's OK, they need a coffee break Why is it so hard? Keyboard Mouse Letting the user know what's happening When and how should we block the User? Never Only With a modal Dialog With a Glass Pane How about just a wait cursor???? You can never truly block a user Give them a Cancel Option so they use Your Solution There is a close widget on the window There is always kill JavaOne SM Conference java.sun.com/javaone 29

30 Blocking Solutions 2008 JavaOne SM Conference java.sun.com/javaone 30

31 Agenda Classification of Swing Applications Application Frameworks Threading and Task Management Making the User Wait Making it pretty Q&A 2008 JavaOne SM Conference java.sun.com/javaone 31

32 Making it Pretty Pretty does not always mean fancy Beauty is in the Eye of the Beholder Business apps used all day need to be Easy On the Eyes Remember guidelines for business apps Embrace alternatives Embrace Java 2D API Swing Labs Third Party Libs 2008 JavaOne SM Conference java.sun.com/javaone 32

33 Java 2D API Swing is built on Java 2D API Paint methods take a Graphics2D as parameter The docs will show Graphics, cast it Rich set of methods for 2D work Well done and easy to use Can really speed up performance 2008 JavaOne SM Conference java.sun.com/javaone 33

34 Swing Labs Collection of several libraries SwingX Timing Framework JDesktop Integration Components (JDIC) SwingX-WS and more... Code is lab code It does change Put your copy in Source Control 2008 JavaOne SM Conference java.sun.com/javaone 34

35 GUI Builders Should we use GUI Builders? Arguments Against Ugly Code Doesn't support what I need Arguments For Speed Not everyone is the UI god you (think you) are Prettier Code Some Examples Netbeans software Intelli-J Jbuilder 2008 JavaOne SM Conference java.sun.com/javaone 35

36 GUI Builder Use 4000 Surveyed (Mail List) 9 Responded 5 Used None GUI Builders Netbeans Borland IDEA Win Builder None 2008 JavaOne SM Conference java.sun.com/javaone 36

37 Resources Folks & Sites I stole reused code from Swing Hacks ( ) Joshua Marinacci, Chris Adamson Alexander Potochkin's Blog Filthy Rich Clients Chet Haase and Romain Guy JavaOne SM Conference java.sun.com/javaone 37

38 Summary If you walk out with one message today: Swing is a great tool, there are lots of resources to help you You now have: A guideline for evaluating Frameworks and a example of a reasonable one A feel for some common issues in Swing Development A list of good resources to go and learn/try more 2008 JavaOne SM Conference java.sun.com/javaone 38

39 Brian Mason, Dir Software Engineering. S JavaOne SM Conference java.sun.com/javaone 39

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

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

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

Filthy Rich Clients: Filthier. Richer. Clientier. Romain Guy, Google Chet Haase, Adobe Systems Filthy Rich Clients: Filthier Richer Clientier Romain Guy, Google Chet Haase, Adobe Systems Learn techniques for making cooler, better, and just darned funner applications. Get filthy. 2008 JavaOne SM

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

Rich Client GUI's with RCP & RAP

Rich Client GUI's with RCP & RAP Rich Client GUI's with RCP & RAP Alexey Aristov WeigleWilczek GmbH aristov@weiglewilczek.com What is Rich Client? A fat client or rich client is a computer (client) in client-server architecture networks

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

Java FX. Threads, Workers and Tasks

Java FX. Threads, Workers and Tasks Java FX Threads, Workers and Tasks Threads and related topics Lecture Overview...but first lets take a look at a good example of Model - View - Controler set up This and most of the lecture is taken from

More information

Seng310 Lecture 8. Prototyping

Seng310 Lecture 8. Prototyping Seng310 Lecture 8. Prototyping Course announcements Deadlines Individual assignment (extended) deadline: today (June 7) 8:00 am by email User testing summary for paper prototype testing- Thursday June

More information

LAB-6340: Advanced Java ME Programming - Streaming Video From Server to Your Device

LAB-6340: Advanced Java ME Programming - Streaming Video From Server to Your Device LAB-6340: Advanced Java ME Programming - Streaming Video From Server to Your Device Lukas Hasik, Fabiola Galleros Rios Software Engineer, Mobility Pack QE Sun Microsystems Inc. http://www.sun.com 2007

More information

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

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 12 GUI Programming CHAPTER AUTHORS Ang Ming You Ching Sieh Yuan Francis Tam Pua Xuan Zhan Software Development Tools and

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

NASA World Wind Java SDK

NASA World Wind Java SDK NASA World Wind Java SDK Tom Gaskins NWW Technical Director http://worldwind.arc.nasa.gov TS-3489 2007 JavaOne SM Conference Session TS-3489 Today s Agenda Build an Application Deploy with Java Web Start

More information

LIGHTWEIGHT UI TOOLKIT MAKING COMPELLING JAVA ME APPLICATIONS EASY

LIGHTWEIGHT UI TOOLKIT MAKING COMPELLING JAVA ME APPLICATIONS EASY LIGHTWEIGHT UI TOOLKIT MAKING COMPELLING JAVA ME APPLICATIONS EASY Chen Fishbein, Software Architect Shai Almog, Software Architect Yoav Barel, Senior Manager TS-4921 Agenda What is LWUIT? Why? Key Benefits

More information

Radical GUI Makeover with Ajax Mashup

Radical GUI Makeover with Ajax Mashup Radical GUI Makeover with Ajax Mashup Terrence Barr Senior Technologist and Community Ambassador Java Mobile & Embedded Community TS-5733 Learn how to turn a 'plain old' Java Platform, Micro Edition (Java

More information

Developing LimeWire: Swing for the Masses

Developing LimeWire: Swing for the Masses Developing LimeWire: Swing for the Masses Sam Berlin Michael Everett TS-5162 Lime Wire LLC Lime Wire LLC GOAL: > To help you easily create large, good-looking User Interfaces in Swing 2 What is LimeWire?

More information

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

Low fidelity: omits details High fidelity: more like finished product. Breadth: % of features covered. Depth: degree of functionality Fall 2005 6.831 UI Design and Implementation 1 Fall 2005 6.831 UI Design and Implementation 2 Paper prototypes Computer prototypes Wizard of Oz prototypes Get feedback earlier, cheaper Experiment with

More information

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Slide 1: Cover Welcome to lesson 3 of the db2 on Campus lecture series. Today we're going to talk about tools and scripting, and this is part 1 of 2

More information

WindowBuilder Graduation & Release Review

WindowBuilder Graduation & Release Review WindowBuilder Graduation & 1.0.0 Release Review http://www.eclipse.org/windowbuilder Planned Review Date: June 2011 Communication Channel: WindowBuilder Forum Eric Clayberg (Project Lead) 1 History Smalltalk

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

Java Swing Introduction

Java Swing Introduction Course Name: Advanced Java Lecture 18 Topics to be covered Java Swing Introduction What is Java Swing? Part of the Java Foundation Classes (JFC) Provides a rich set of GUI components Used to create a Java

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

Simplifying Development and Testing of GUIs with SAF (JSR 296) and FEST. Michael Hüttermann Training & Consulting Alex Ruiz Oracle Corporation

Simplifying Development and Testing of GUIs with SAF (JSR 296) and FEST. Michael Hüttermann Training & Consulting Alex Ruiz Oracle Corporation Simplifying Development and Testing of GUIs with SAF (JSR 296) and FEST Michael Hüttermann Training & Consulting Alex Ruiz Oracle Corporation Agenda Why do we need a Swing framework? Introducing the Swing

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

Java.net - the Source for Java(tm) Technology Collaboration

Java.net - the Source for Java(tm) Technology Collaboration java.net > All Articles > http://today.java.net/pub/a/today/2006/02/21/building-guis-with-swixml.html Building GUIs with SwiXml by Joshua Marinacci 02/21/2006 Contents The Layout Problem What is SwiXml?

More information

Two geeks discuss Mobile/RIA stuff over coffee

Two geeks discuss Mobile/RIA stuff over coffee JavaFX / Android Competing technologies or ideal partnership?...or (preferred title)... Two geeks discuss Mobile/RIA stuff over coffee Set up One Sony-XPeria mobile device complete with JavaFX demo loaded

More information

CS3205 HCI IN SOFTWARE DEVELOPMENT PROTOTYPING STRATEGIES. Tom Horton. * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford)

CS3205 HCI IN SOFTWARE DEVELOPMENT PROTOTYPING STRATEGIES. Tom Horton. * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford) CS3205 HCI IN SOFTWARE DEVELOPMENT PROTOTYPING STRATEGIES Tom Horton * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford) WHAT WILL WE BE TALKING ABOUT? Specific Prototyping Strategies! Low-Fidelity

More information

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

Prototyping. Readings: Dix et al: Chapter 5.8 Marc Rettig: Prototyping for tiny fingers, Communications of the ACM, April 1994. Prototyping Readings: Dix et al: Chapter 5.8 Marc Rettig: Prototyping for tiny fingers, Communications of the ACM, April 1994. 1 What is prototyping? producing cheaper, less accurate renditions of your

More information

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How!

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How! TS-6824 JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How! Brendan Murray Software Architect IBM http://www.ibm.com 2007 JavaOne SM Conference Session TS-6824 Goal Why am I here?

More information

mismatch between what is maybe possible today and what is going on in many of today's IDEs.

mismatch between what is maybe possible today and what is going on in many of today's IDEs. What will happen if we do very, very small and lightweight tools instead of heavyweight, integrated big IDEs? Lecturer: Martin Lippert, VMware and Eclispe tooling expert LIPPERT: Welcome, everybody, to

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

Improve and Expand JavaServer Faces Technology with JBoss Seam

Improve and Expand JavaServer Faces Technology with JBoss Seam Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.

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

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

Lecture 6. Design (3) CENG 412-Human Factors in Engineering May Lecture 6. Design (3) CENG 412-Human Factors in Engineering May 28 2009 1 Outline Prototyping techniques: - Paper prototype - Computer prototype - Wizard of Oz Reading: Wickens pp. 50-57 Marc Rettig: Prototyping

More information

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

Page 1. Human-computer interaction. Lecture 1b: Design & Implementation. Building user interfaces. Mental & implementation models Human-computer interaction Lecture 1b: Design & Implementation Human-computer interaction is a discipline concerned with the design, implementation, and evaluation of interactive systems for human use

More information

MemoryLint. Petr Nejedlý, Radim Kubacki SUN Microsystems, BOF-9066

MemoryLint. Petr Nejedlý, Radim Kubacki SUN Microsystems,   BOF-9066 MemoryLint Petr Nejedlý, Radim Kubacki SUN Microsystems, http://www.sun.com/, http://www.netbeans.org BOF-9066 2007 JavaOne SM Conference Session BOF-9066 Goal Get ideas how to analyze content of Java

More information

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

Page 1. Human-computer interaction. Lecture 2: Design & Implementation. Building user interfaces. Users and limitations Human-computer interaction Lecture 2: Design & Implementation Human-computer interaction is a discipline concerned with the design, implementation, and evaluation of interactive systems for human use and

More information

AUTOMATED HEAPDUMP ANALYSIS FOR DEVELOPERS, TESTERS, AND SUPPORT EMPLOYEES

AUTOMATED HEAPDUMP ANALYSIS FOR DEVELOPERS, TESTERS, AND SUPPORT EMPLOYEES AUTOMATED HEAPDUMP ANALYSIS FOR DEVELOPERS, TESTERS, AND SUPPORT EMPLOYEES Krum Tsvetkov Andreas Buchen TS-5729 Find memory leaks WITHOUT working with Memory Analyzer 2008 JavaOne SM Conference java.sun.com/javaone

More information

Lesson 8 Transcript: Database Security

Lesson 8 Transcript: Database Security Lesson 8 Transcript: Database Security Slide 1: Cover Welcome to Lesson 8 of the DB2 on Campus Series. Today we are going to talk about database security. My name is Raul Chong, and I am the DB2 on Campus

More information

JDirectoryChooser Documentation

JDirectoryChooser Documentation JDirectoryChooser Documentation Page 1 of 7 How to Use JDirectoryChooser The JDirectoryChooser provides user-friendly GUI for manipulating directories from Java application. User can either simply choose

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

CaptainCasa Enterprise Client. Why, where, how JavaFX makes sense

CaptainCasa Enterprise Client. Why, where, how JavaFX makes sense CaptainCasa Enterprise Client Why, where, how JavaFX makes sense 1 Why, where, how JavaFX makes sense! by Björn Müller, http://www.captaincasa.com CaptainCasa is an open community of mid-range business

More information

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World Slide 1: Cover Welcome to the speech, The role of DB2 in Web 2.0 and in the Information on Demand World. This is the second speech

More information

Lab Guide. Service Portal and Mobile. Patrick Wilson & Will Lisac. Default Login / Password: admin / Knowledge17. itil / Knowledge17

Lab Guide. Service Portal and Mobile. Patrick Wilson & Will Lisac. Default Login / Password: admin / Knowledge17. itil / Knowledge17 Lab Guide Service Portal and Mobile Patrick Wilson & Will Lisac Default Login / Password: admin / Knowledge17 itil / Knowledge17 employee / Knowledge17 2017 ServiceNow, Inc. All rights reserved. 1 Lab

More information

Petr Suchomel Architect, NetBeans Mobility

Petr Suchomel Architect, NetBeans Mobility NetBeans 6.0 A Fresh Look into Java Development Petr Suchomel Architect, NetBeans Mobility Sun Microsystems Agenda The NetBeans IDE, Platform, Community What's new in NetBeans 6.0 Quick look over NetBeans

More information

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Copyright 2013, Oracle and/or its affiliates. All rights reserved. 1 JavaFX for Desktop and Embedded Nicolas Lorain Java Client Product Management Nicolas.lorain@oracle.com @javafx4you 2 The preceding is intended to outline our general product direction. It is intended

More information

Page 1. Ideas to windows. Lecture 7: Prototyping & Evaluation. Levels of prototyping. Progressive refinement

Page 1. Ideas to windows. Lecture 7: Prototyping & Evaluation. Levels of prototyping. Progressive refinement Ideas to windows Lecture 7: Prototyping & Evaluation How do we go from ideas to windows? Prototyping... rapid initial development, sketching & testing many designs to determine the best (few?) to continue

More information

CS211 Lecture: The User Interface

CS211 Lecture: The User Interface CS211 Lecture: The User Interface Last revised November 19, 2008 Objectives: 1. To introduce the broad field of user interface design 2. To introduce the concept of User Centered Design 3. To introduce

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

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University The COS 333 Project Robert M. Dondero, Ph.D. Princeton University 1 Overview A simulation of reality In groups of 3-5 people... Build a substantial three tier software system 2 Three-Tier Systems "Three

More information

Developing applications using JavaFX

Developing applications using JavaFX Developing applications using JavaFX Cheshta, Dr. Deepti Sharma M.Tech Scholar, Dept. of CSE, Advanced Institute of Technology & Management, Palwal, Haryana, India HOD, Dept. of CSE, Advanced Institute

More information

Human-Computer Interaction IS4300

Human-Computer Interaction IS4300 Human-Computer Interaction IS4300 1 Quiz 3 1 I5 due next class Your mission in this exercise is to implement a very simple Java painting applet. The applet must support the following functions: Draw curves,

More information

CS 4300 Computer Graphics

CS 4300 Computer Graphics CS 4300 Computer Graphics Prof. Harriet Fell Fall 2011 Lecture 8 September 22, 2011 GUIs GUIs in modern operating systems cross-platform GUI frameworks common GUI widgets event-driven programming Model-View-Controller

More information

Java Programming Constructs Java Programming 2 Lesson 1

Java Programming Constructs Java Programming 2 Lesson 1 Java Programming Constructs Java Programming 2 Lesson 1 Course Objectives Welcome to OST's Java 2 course! In this course, you'll learn more in-depth concepts and syntax of the Java Programming language.

More information

Midterm Reminders. Design Pattern #6: Facade. General Idea. The Situation

Midterm Reminders. Design Pattern #6: Facade. General Idea. The Situation Midterm Reminders The midterm is next Tuesday: March 4, 7-9 p.m. If you have a conflict and haven't told us, send e-mail TODAY! (conflicts with other Queens courses or exams) Location: Stirling Hall rooms

More information

Lecture Topics. Administrivia

Lecture Topics. Administrivia ECE498SL Lec. Notes L8PA Lecture Topics overloading pitfalls of overloading & conversions matching an overloaded call miscellany new & delete variable declarations extensibility: philosophy vs. reality

More information

How NikeiD Hurdled the Java Technology and Flash Barrier

How NikeiD Hurdled the Java Technology and Flash Barrier How NikeiD Hurdled the Java Technology and Flash Barrier Jonathan Hager, Kirk Jones and Travis Davidson Nike, Inc. nikeid.nike.com TS-9123 2006 JavaOne SM Conference Session TS-9123 Goal What You Will

More information

Intro to Java Programming, Comprehensive Version, Global Edition

Intro to Java Programming, Comprehensive Version, Global Edition Intro to Java Programming, Comprehensive Version, Global Edition LIANG Click here if your download doesn"t start automatically Intro to Java Programming, Comprehensive Version, Global Edition LIANG Intro

More information

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

Widget. Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down Widgets Jeff Avery Widget Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down menus, spinners, file dialog boxes, etc are

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

Multiple Inheritance, Abstract Classes, Interfaces

Multiple Inheritance, Abstract Classes, Interfaces Multiple Inheritance, Abstract Classes, Interfaces Written by John Bell for CS 342, Spring 2018 Based on chapter 8 of The Object-Oriented Thought Process by Matt Weisfeld, and other sources. Frameworks

More information

Canvas. Walter Goodwater, Software Development Manager

Canvas. Walter Goodwater, Software Development Manager Canvas Walter Goodwater, Software Development Manager Agenda Studio survey results Canvas design goals Demo Canvas roadmap Beta program 2015 Weatherford. All rights reserved. Studio Survey Results State

More information

Thread Safety. Review. Today o Confinement o Threadsafe datatypes Required reading. Concurrency Wrapper Collections

Thread Safety. Review. Today o Confinement o Threadsafe datatypes Required reading. Concurrency Wrapper Collections Thread Safety Today o Confinement o Threadsafe datatypes Required reading Concurrency Wrapper Collections Optional reading The material in this lecture and the next lecture is inspired by an excellent

More information

CPS122 Lecture: The User Interface

CPS122 Lecture: The User Interface Objectives: CPS122 Lecture: The User Interface 1. To introduce the broad field of user interface design 2. To introduce the concept of User Centered Design 3. To introduce a process for user interface

More information

A Design Recovery View - JFace vs. SWT. Abstract

A Design Recovery View - JFace vs. SWT. Abstract A Design Recovery View - JFace vs. SWT Technical Report 2009-564 Manar Alalfi School of computing- Queen s University Kingston, Ontario, Canada alalfi@cs.queensu.ca Abstract This paper presents an experience

More information

8.3 cloud roadmap. Dr. Andrei Borshchev, CEO Nikolay Churkov, Head of Software Development. The AnyLogic Company Conference 2018 Baltimore

8.3 cloud roadmap. Dr. Andrei Borshchev, CEO Nikolay Churkov, Head of Software Development. The AnyLogic Company Conference 2018 Baltimore 8.3 cloud roadmap Dr. Andrei Borshchev, CEO Nikolay Churkov, Head of Software Development The AnyLogic Company Conference 2018 Baltimore The AnyLogic Company www.anylogic.com agenda 1. 8.3: the new web

More information

BUILDING DATABASE SYSTEMS (X478)

BUILDING DATABASE SYSTEMS (X478) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 4 Professional Program: Data Administration and Management BUILDING DATABASE SYSTEMS (X478) AGENDA 4. Designing User Interfaces:

More information

GUI Event Handlers (Part I)

GUI Event Handlers (Part I) GUI Event Handlers (Part I) 188230 Advanced Computer Programming Asst. Prof. Dr. Kanda Runapongsa Saikaew (krunapon@kku.ac.th) Department of Computer Engineering Khon Kaen University 1 Agenda General event

More information

1 Build Your First App. The way to get started is to quit talking and begin doing. Walt Disney

1 Build Your First App. The way to get started is to quit talking and begin doing. Walt Disney 1 Build Your First App The way to get started is to quit talking and begin doing. Walt Disney Copyright 2015 AppCoda Limited All rights reserved. Please do not distribute or share without permission. No

More information

Fall UI Design and Implementation 1

Fall UI Design and Implementation 1 Fall 2004 6.831 UI Design and Implementation 1 1 Source: UI Hall of Shame Fall 2004 6.831 UI Design and Implementation 2 Our Hall of Shame candidate for the day is this interface for choose how a list

More information

Monkeybars Tools-enabled Swing development with JRuby

Monkeybars Tools-enabled Swing development with JRuby Monkeybars Tools-enabled Swing development with JRuby David Koontz david@koontzfamily.org JRuby fanboy, teacher, hockey player This is a talk about Java 2 This is a talk about Java This is a talk about

More information

Tcl/Tk lecture. What is the Wish Interpreter? CIS 410/510 User Interface Programming

Tcl/Tk lecture. What is the Wish Interpreter? CIS 410/510 User Interface Programming Tcl/Tk lecture CIS 410/510 User Interface Programming Tool Command Language TCL Scripting language for developing & using GUIs Allows generic programming variables, loops, procedures Embeddable into an

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

Adapter. Comp-304 : Adapter Lecture 23. Alexandre Denault Computer Science McGill University Fall 2007

Adapter. Comp-304 : Adapter Lecture 23. Alexandre Denault Computer Science McGill University Fall 2007 Adapter Comp-304 : Adapter Lecture 23 Alexandre Denault Computer Science McGill University Fall 2007 Transactions Atomicity : Either all the tasks in the transactions are done, or none of them are. Consistency

More information

User Interfaces in LabVIEW

User Interfaces in LabVIEW User Interfaces in LabVIEW Company Overview Established in 1996, offices in New York, Boston, Chicago, Denver and Houston 75+ employees & growing Industries Served: Automotive Bio-medical Chemical and

More information

CORE JAVA TRAINING COURSE CONTENT

CORE JAVA TRAINING COURSE CONTENT CORE JAVA TRAINING COURSE CONTENT SECTION 1 : INTRODUCTION Introduction about Programming Language Paradigms Why Java? Flavors of Java. Java Designing Goal. Role of Java Programmer in Industry Features

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

Quality Assurance User Interface Modeling

Quality Assurance User Interface Modeling Quality Assurance User Interface Modeling Part II - Lecture 4 1 The University of Auckland New Zealand 254 18/09/ /2012 Interviewing Methods of the FBI 254 18/09/ /2012 Cognitive interview: method to enhance

More information

Creating accessible forms

Creating accessible forms Creating accessible forms Introduction Creating an accessible form can seem tricky. Some of the questions people commonly ask include: Can I use protected forms? How do I lay out my prompts and questions?

More information

CoSc Lab # 5 (The Controller)

CoSc Lab # 5 (The Controller) CoSc 10403 Lab # 5 (The Controller) Due Date: Part I, Experiment classtime, Thursday, Oct 25 th, 2018. Part II, Program - by midnight, Thursday, Oct 25 th, 2018. Part I MUST be typed and submitted to your

More information

I m going to be introducing you to ergonomics More specifically ergonomics in terms of designing touch interfaces for mobile devices I m going to be

I m going to be introducing you to ergonomics More specifically ergonomics in terms of designing touch interfaces for mobile devices I m going to be I m going to be introducing you to ergonomics More specifically ergonomics in terms of designing touch interfaces for mobile devices I m going to be talking about how we hold and interact our mobile devices

More information

Prezi Quick Guide: Make a Prezi in minutes

Prezi Quick Guide: Make a Prezi in minutes Prezi Quick Guide: Make a Prezi in minutes by Billy Meinke Updated Feb 2016 by Gina Iijima Welcome! This short guide will have you making functional and effective Prezis in no time. Prezi is a dynamic

More information

Human Computer Interface Design Chapter 7 User Interface Elements Design and Guidelines

Human Computer Interface Design Chapter 7 User Interface Elements Design and Guidelines Human Computer Interface Design Chapter 7 User Interface Elements Design and Guidelines Objective UI Guidelines provides information on the theory behind the UI Elements "look and feel" and the practice

More information

Clickbank Domination Presents. A case study by Devin Zander. A look into how absolutely easy internet marketing is. Money Mindset Page 1

Clickbank Domination Presents. A case study by Devin Zander. A look into how absolutely easy internet marketing is. Money Mindset Page 1 Presents A case study by Devin Zander A look into how absolutely easy internet marketing is. Money Mindset Page 1 Hey guys! Quick into I m Devin Zander and today I ve got something everybody loves! Me

More information

BCSWomen Android programming (with AppInventor) Family fun day World record attempt

BCSWomen Android programming (with AppInventor) Family fun day World record attempt BCSWomen Android programming (with AppInventor) Family fun day World record attempt Overview of the day Intros Hello Android! Getting your app on your phone Getting into groups Ideas for apps Overview

More information

JSR 377 Desktop Application Framework September Andres Almiray

JSR 377 Desktop Application Framework September Andres Almiray JSR 377 Desktop Application Framework September 29 2017 Andres Almiray Agenda Goals Information to be gathered Implementation notes Issues Questions, discussion, next steps 2 Goals 3 Goals Define APIs

More information

Test Patterns in Java

Test Patterns in Java Test Patterns in Java Jaroslav Tulach, Jesse Glick, Miloš Kleint Sun Microsystems http://www.netbeans.org 2006 JavaOne SM Conference Session BOF 0220 Automated Testing Test is a Kind of Documentation Learn

More information

CS108, Stanford Handout #22. Thread 3 GUI

CS108, Stanford Handout #22. Thread 3 GUI CS108, Stanford Handout #22 Winter, 2006-07 Nick Parlante Thread 3 GUI GUIs and Threading Problem: Swing vs. Threads How to integrate the Swing/GUI/drawing system with threads? Problem: The GUI system

More information

Building a Java ME Test Suite in 15 Minutes

Building a Java ME Test Suite in 15 Minutes Building a Java ME Test Suite in 15 Minutes Mikhail Gorshenev, Senior Staff Engineer Roman Zelov, Member of Technical Staff Alexander Glasman, Member of Technical Staff Sun Microsystems, Inc. http://www.sun.com/

More information

Introduction to the NetBeans Platform Certified Training Course. Geertjan Wielenga Sun Microsystems

Introduction to the NetBeans Platform Certified Training Course. Geertjan Wielenga Sun Microsystems Introduction to the NetBeans Platform Certified Training Course Geertjan Wielenga Sun Microsystems Agenda Aim of the Next Two Days What's the Problem Domain? What is the NetBeans Platform? Why NetBeans

More information

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

the gamedesigninitiative at cornell university Lecture 13 Architecture Design

the gamedesigninitiative at cornell university Lecture 13 Architecture Design Lecture 13 Take Away for Today What should lead programmer do? How do CRC cards aid software design? What goes on each card? How do you lay m out? What properties should y have? How do activity diagrams

More information

C15: JavaFX: Styling, FXML, and MVC

C15: JavaFX: Styling, FXML, and MVC CISC 3120 C15: JavaFX: Styling, FXML, and MVC Hui Chen Department of Computer & Information Science CUNY Brooklyn College 10/19/2017 CUNY Brooklyn College 1 Outline Recap and issues Styling user interface

More information

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

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

More information

CS11 Java. Fall Lecture 4

CS11 Java. Fall Lecture 4 CS11 Java Fall 2006-2007 Lecture 4 Today s Topics Interfaces The Swing API Event Handlers Inner Classes Arrays Java Interfaces Classes can only have one parent class No multiple inheritance in Java! By

More information

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

CS 116x Winter 2015 Craig S. Kaplan. Module 03 Graphical User Interfaces. Topics CS 116x Winter 2015 Craig S. Kaplan Module 03 Graphical User Interfaces Topics The model-view-controller paradigm Direct manipulation User interface toolkits Building interfaces with ControlP5 Readings

More information

15-Minute Fix: A Step-by-Step Guide to Designing Beautiful Dashboards

15-Minute Fix: A Step-by-Step Guide to Designing Beautiful Dashboards 15-Minute Fix: A Step-by-Step Guide to Designing Beautiful Dashboards With a dashboard, every unnecessary piece of information results in time wasted trying to filter out what s important. Stephen Few,

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

AD105 Introduction to Application Development for the IBM Workplace Managed Client

AD105 Introduction to Application Development for the IBM Workplace Managed Client AD105 Introduction to Application Development for the IBM Workplace Managed Client Rama Annavajhala, IBM Workplace Software, IBM Software Group Sesha Baratham, IBM Workplace Software, IBM Software Group

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

Preventing Errors Help and Documentation

Preventing Errors Help and Documentation Preventing Errors Help and Documentation An ounce of prevention... It s in the manual.. This material has been developed by Georgia Tech HCI faculty, and continues to evolve. Contributors include Gregory

More information