Developing LimeWire: Swing for the Masses
|
|
- Ira Malone
- 6 years ago
- Views:
Transcription
1 Developing LimeWire: Swing for the Masses Sam Berlin Michael Everett TS-5162 Lime Wire LLC Lime Wire LLC
2 GOAL: > To help you easily create large, good-looking User Interfaces in Swing 2
3 What is LimeWire? > The most popular P2P application > Supports both Gnutella and BitTorrent protocols > Written entirely in Java and Swing > In development since 2000 > Open source 3
4 Why you should listen > Actively developed > Production code since 2000 > 10 Million users/day > 25 Million users/week CONCLUSION > The code is available and it works 4
5 Agenda > Brief LimeWire UI History > Plan a new interface > Flesh it out (Guice) > Work with real data (Glazed Lists) > Make it pretty (JXLayer, > add a web browser! (MozSwing) 5
6 LimeWire 1.4 > Early 2001 > Java Compatible! > Metal L&F Only 6
7 LimeWire 2.0 > Late 2001 > Still Java Compatible! > Still Metal L&F Only 7
8 LimeWire 3.0 > Mid 2003 > Still Java Compatible! (but 1.3 support) > Pluggable L&F 8
9 LimeWire 4.0 > Mid 2004 > Still Java Compatible! (but 1.3 support) > Pluggable L&F, better native feel 9
10 LimeWire 4.18 > Mid 2008 > Minimum Java 1.5 > Pluggable L&F, best native feel 10
11 LimeWire 5 11
12 Agenda > Brief LimeWire UI History > Plan a new interface > Flesh it out (Guice) > Work with real data (Glazed Lists) > Make it pretty (JXLayer, > add a web browser! (MozSwing) 12
13 Planning a New Interface > Get (and use) a User Experience Designer! > Know your purpose Browser? Media playback? Language familiarity? > Evaluate Toolkits Swing, JavaFX, SWT, QT Jambi, Air... 13
14 Sketch your ideas > Brainstorm > Nothing is permanent 14
15 Use Paper Mockups > Test on a fresh set of eyes > Examine the flow of interactions 15
16 Use Paper Mockups: Problems > Too many input boxes > Unclear actions 16
17 Baby Steps > The uglier the better 17
18 A Little Paint Goes A Long Way... > Wow, this is a real thing?! 18
19 Agenda > Brief LimeWire UI History > Plan a new interface > Flesh it out (Guice) > Work with real data (Glazed Lists) > Make it pretty (JXLayer, > add a web browser! (MozSwing) 19
20 Fleshing It Out: Simple UI == Happy UI > No logic in the UI code > Don't let the core dictate the UI's architecture > If complex core, create simplifying code > Create simple core API while developing UI 20
21 Simple by Design: Keep the UI Clean StatusPanel(StatusData data) { statusdata.addpclistener(new PropertyChangeListener()) { public void propertychanged(propertychangeevent evt) { if(evt.getpropertyname().equals(statusdata.my_property)) changestatus(evt.getnewvalue()); } }); StatusDataImpl implements StatusData { StatusDataImpl(ComplexStatusManager mgr) { mgr.addlistener(new SimplifyingListener()); } public void addpclistener(propertychangelistener pcl) {... 21
22 Dependency Injection > Binds core to UI > Easy swapping of core > We use Guice (TS-5434) public void RealCoreModule extends AbstractModule { public void configure() { bind(statusdata.class).to(corestatusdataimpl.class); } } public void MockCoreModule extends AbstractModule { public void configure() { bind(statusdata.class).to(mockstatusdataimpl.class); } } 22
23 DEMO Core API & Dependency Injection 23
24 Agenda > Brief LimeWire UI History > Plan a new interface > Flesh it out (Guice) > Work with real data (Glazed Lists) > Make it pretty (JXLayer, > add a web browser! (MozSwing) 24
25 Glazed Lists > EventList Backed by java.util.list Can be wrapped by other Glazed Lists Fires events when changes occur to list > ThreadSafeList Handles locking > SortedList Tied to TableColumns to initiate sort > FilterList Tied to a JTextField 25
26 Creating the TableModel eventlist = GlazedLists.threadSafeList(new BasicEventList()); MatcherEditor matcher = new TextComponentMatcherEditor( filtertextfield, new FileInfoFilterator()); filterlist = new FilterList(eventList, matcher); sortedlist = new SortedList(filterList, new FileComparator()); tablemodel = new EventTableModel(sortedList, new FileTableFormat()); 26
27 DEMO Glazed Lists 27
28 Agenda > Brief LimeWire UI History > Plan a new interface > Flesh it out (Guice) > Work with real data (Glazed Lists) > Make it pretty (JXLayer, > add a web browser! (MozSwing) 28
29 Feedback > Overlays, Notifications and Feedback GlassPane, JLayeredPane, ToolTips, Modal Dialogs > Problem Layer clashing Calculating location of subcomponent in frame Visibility when subcomponent is hidden/shown 29
30 JXLayer > Part of SwingX project > GlassPane for Components > Encapsulates layers from rest of project > Potentially faster with less repainting than JLayeredPane > TS-4454 The Magic of the JXLayer Component 30
31 OverLays using JXLayer LockableUI overlayui = LockedUI(); JXLayer jxlayer = new JXLayer(scrollPane, overlayui); jxlayer.getglasspane().add(new WelcomePanel()); jxlayer.getglasspane().setvisible(true); 31
32 DEMO JXLayer 32
33 Agenda > Brief LimeWire UI History > Plan a new interface > Flesh it out (Guice) > Work with real data (Glazed Lists) > Make it pretty (JXLayer, > add a web browser! (MozSwing) 33
34 Painting Components > Subclass the Component or ComponentUI > Override paintcomponent ( ) > Problem Subclassing for the sake of L&F Difficult to maintain Impossible for Graphic Designers to implement or change the L&F 34
35 SwingX Painters > Decorate components rather than subclass > Create new components only for logical changes > Setting a painter on a JXComponent setbackgroundpainter(painter painter) setforegroundpainter(painter painter) > Painters ShapePainter RectanglePainter CompoundPainter (lets you combine painters) More... 35
36 Before Painters Remember this ugly page? 36
37 Applying Painters filtertextfield = new JXTextField(); filtertextfield.setbackgroundpainter(new TextFieldPainter());... 37
38 Creating a Painter public class TextFieldPainter extends RectanglePainter { private Color background = Color.decode(#ffffff); private Color bordergradienttop = Color.decode(#616161); private int arcwidth = 13;... public TextFieldPainter() { Paint borderpainter = new GradientPaint(0, 0, bordergradienttop, 0, 1, bordergradientbottom); setrounded(true); setfillpaint(background); setroundedwidth(arcwidth); setroundedheight(archeight); setborderpaint(borderpaint); 38
39 > Part of JSR-196 Application Framework > Graphic Designer friendly > private Color private Color private Color private int private int archeight; public TextFieldPainter() { Application.getInstance().getContext(). getresourcemap(appframe.class).injectfields(this); } 39
40 AppFrame.properties... # Painter for rounded TextField TextFieldPainter.background = #ffffff TextFieldPainter.backgroundGradientTop = # TextFieldPainter.backgroundGradientBottom = #f3f3f3 TextFieldPainter.arcWidth = 13 TextFieldPainter.arcHeight =
41 Painters > SwingX Painters > Poor Man's CSS Let Graphic Designers paint the graphics! Nimbus? (TS-5579) javacss.dev.java.net 41
42 DEMO Painters 42
43 JXTextField > We cheated, there is no JXTextField! public class JXTextField extends JTextField { private Painter<JTextField> backgroundpainter; public JXTextField() { setopaque(false); } public void setbackgroundpainter(painter painter) { this.backgroundpainter = painter; } protected void paintcomponent(graphics g) { if(backgroundpainter!= null) backgroundpainter.paint((graphics2d) g, this, getwidth(), getheight()); super.paintcomponent(g); 43
44 Agenda > Brief LimeWire UI History > Plan a new interface > Flesh it out (Guice) > Work with real data (Glazed Lists) > Make it pretty (JXLayer, >... add a web browser! (MozSwing) 44
45 Integrating a Web Browser > JWebPane??? Still no browser available in the JDK > LimeWire SWT Native Browser Used SWT_AWT_Bridge Only worked on Windows and Linux OSX support on SWT 3.5? 45
46 SWT_AWT Problems > Uses Native OS browser Uses user settings > Threading complexity 2 different EDTs to worry about > Limited customization No DOM interaction No JavaScript calls Limited set of Listeners 46
47 MozSwing > MozSwing == XULRunner == Firefox JavaScript <~~~> Java interaction Hooks for DOM Component swapping (ie Downloader) > Behaves as separate install Allows you to customize plugins Doesn't affect user's FireFox install > Links 47
48 Creating MozSwing MozillaPanel browser = new MozillaPanel(); add(browser, BorderLayout.CENTER); browser.load( ); 48
49 Custom Downloading // lookup the preferences service by contract id nsiprefservice prefservice = nsiprefservice.class); prefservice.getbranch( browser.download. ).setboolpref( usedownloaddir, 1); prefservice.getbranch( browser.download. ).setintpref( folderlist, 2); prefservice.getbranch( browser.download. ).setcharpref( dir, downloaddir); prefservice.getbranch( browser.download.manager. ). setboolpref( showwhenstarting, 0); prefservice.getbranch( browser.download.manager. ). setboolpref( showalertoncomplete, 0); //prevent the save or open dialog from prompting for these mime types prefservice.getbranch( browser.helperapps.neverask. ). setcharpref( savetodisk, MIME_TYPES); 49
50 Summary > Plan a new interface Sketch, brainstorm, paper mocks, start small > Flesh it out The less logic the better > Working with real data Dependency Injection helps > Make it pretty Painters Painters Painters! 50
51 Links > LimeWire is Open Source! 51
52 Sam Berlin Michael Everett Lime Wire LLC Lime Wire LLC TS
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 informationBringing 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 informationSwinging 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 informationWidgets. Overview. Widget. Widgets Widget toolkits Lightweight vs. heavyweight widgets Swing Widget Demo
Widgets Overview Widgets Widget toolkits Lightweight vs. heavyweight widgets Swing Widget Demo Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, progress
More informationEclipse + Html: A Journey
Eclipse + Html: A Journey Kris De Volder , Pivotal Software Martin Lippert , Pivotal Software 1 Outline Goal Motivation Case Studies The Journey API Comparison
More informationOverview of WebAdmin and UI Frameworks
Overview of WebAdmin and UI Frameworks ovirt Workshop - Bangalore October 2012 Kanagaraj Mayilsamy RedHat 1 Agenda The heart of ovirt UI GWT GWT Development Lifecycle Deferred Binding MVP Architecture
More informationArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen
ArcGIS Runtime: Building Cross-Platform Apps Rex Hansen Mark Baird Michael Tims Morten Nielsen Agenda Cross-platform review ArcGIS Runtime cross-platform options - Java - Qt -.NET ArcGIS Runtime: Building
More informationPatterns and Best Practices for Dynamic OSGi Applications
Patterns and Best Practices for Dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More informationUI 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 informationLIGHTWEIGHT 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 informationPatterns and Best Practices for dynamic OSGi Applications
Patterns and Best Practices for dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More information<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 informationAgenda. Programming Seminar. By: dr. Amal Khalifa. Coordinate systems Colors Fonts Drawing shapes Graphics2D API
Agenda Coordinate systems Colors Fonts Drawing shapes Graphics2D API By: dr. Amal Khalifa 1 Programming Seminar @12:30 13:30 pm on Wednesday 9/4/2014 Location : 2.505.01 Painting components 2 Every component
More informationNASA 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 informationThe Eclipse Rich Ajax Platform
The Eclipse Rich Ajax Platform Frank Appel RAP Tech Lead fappel@innoopract.com Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 1 The Innoopract pitch Integration & delivery
More informationWidget. 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 informationIntroduction 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 informationSimplifying 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 informationTestingofScout Application. Ludwigsburg,
TestingofScout Application Ludwigsburg, 27.10.2014 The Tools approach The Testing Theory approach Unit testing White box testing Black box testing Integration testing Functional testing System testing
More informationJava.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 informationGraphical 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 informationRich 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 informationCS108, 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 informationCSE wi Final Exam 3/12/18 Sample Solution
Question 1. (8 points, 2 each) Equality. Recall that there are several different notions of object equality that we ve encountered this quarter. In particular, we have the following three: Reference equality:
More informationGUI Implementation Support
GUI Implementation Support Learning Objectives: Why GUIs? What is a GUI? Why is implementation support needed? What kinds of implementation support are available? Basic concepts in OO GUI toolkit & app
More informationJava 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 informationAll the Swing components start with J. The hierarchy diagram is shown below. JComponent is the base class.
Q1. If you add a component to the CENTER of a border layout, which directions will the component stretch? A1. The component will stretch both horizontally and vertically. It will occupy the whole space
More informationKF5008 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 informationGraphical User Interfaces in Java Part 2
Graphical User Interfaces in Java Part 2 COMP440 Penn State Harrisburg April 17, 2007 Julia M. Lobur 1 Objectives Illustrate Swing look-and-feel. Demonstrate the relationship between concurrency and Java
More informationObject-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 informationReview. Designing Interactive Systems II. Introduction. Web 2.0 in keywords GWT Cappuccino HTML5. Cross platform GUI Toolkit
Review Designing Interactive Systems II Computer Science Graduate Programme SS 2010 Prof. Dr. RWTH Aachen University Web 2.0 in keywords GWT Cappuccino HTML5 http://hci.rwth-aachen.de 1 2 Introduction
More informationAsynchronous OSGi: Promises for the masses. Tim Ward.
Asynchronous OSGi: Promises for the masses Tim Ward http://www.paremus.com info@paremus.com Who is Tim Ward? @TimothyWard Senior Consulting Engineer, Trainer and Architect at Paremus 5 years at IBM developing
More informationDesigning Interactive Systems II
Designing Interactive Systems II Computer Science Graduate Programme SS 2010 Prof. Dr. RWTH Aachen University http://hci.rwth-aachen.de 1 Review 2 Review Web 2.0 in keywords 2 Review Web 2.0 in keywords
More informationWorkaround Swing Bugs
Workaround Swing Bugs David Qiao, JIDE Software, Inc. BOF-5133 Background of Myself and JIDE CTO and Founder of JIDE Software, Inc. Heavily use Swing in the last several years Build components and frameworks
More informationInteraktionsprogrammering TDDD13 + TDDC73
Interaktionsprogrammering TDDD13 + TDDC73 Anders Fröberg Outline Questions Project Threads and GUI JavaFX Project Threads JavaFX is the Evolution of Java as a Rich Client Platform. It is designed to provide
More informationSri Vidya College of Engineering & Technology
UNIT-V TWO MARKS QUESTION & ANSWER 1. What is the difference between the Font and FontMetrics class? Font class is used to set or retrieve the screen fonts.the Font class maps the characters of the language
More informationSwing 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 informationTopic 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 informationTopic 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 informationArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe
ArcGIS Runtime: Building Cross-Platform Apps Mike Branscomb Michael Tims Tyler Schiewe Agenda Cross-platform review ArcGIS Runtime cross-platform options - Java - Qt -.NET Native vs Web Native strategies
More informationEclipse 4. Brian de Alwis. Abstract
Eclipse 4 Brian de Alwis Abstract This year's Juno release sees the mainstream deployment of Eclipse 4, the new application platform from the Eclipse Foundation. Over four years in the making, Eclipse
More informationGraphics 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 informationCSC 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(Incomplete) History of GUIs
CMSC 433 Programming Language Technologies and Paradigms Spring 2004 Graphical User Interfaces April 20, 2004 (Incomplete) History of GUIs 1973: Xerox Alto 3-button mouse, bit-mapped display, windows 1981:
More informationProgramming Languages and Techniques (CIS120)
Programming Languages and Techniques (CIS120) Lecture 33 April 16, 2014 Swing I: Drawing and Event Handling Set set = new TreeSet (); Map map = new TreeMap
More informationWindows 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 informationBut before understanding the Selenium WebDriver concept, we need to know about the Selenium first.
As per the today s scenario, companies not only desire to test software adequately, but they also want to get the work done as quickly and thoroughly as possible. To accomplish this goal, organizations
More informationJSR377 What's up and what's next. Andres Almiray Canoo Engineering AG
JSR377 What's up and what's next Andres Almiray - @aalmiray Canoo Engineering AG PREVIOUS ATTEMPTS JSR 193 Client Side Container JSR 296 Swing Application Framework JSR 295 Beans Binding JSR 296 had the
More informationGWT: The Technical Advantage. Presenter: Anirudh Dewani Company Name: Google
GWT: The Technical Advantage Presenter: Anirudh Dewani Company Name: Google What is GWT? 2 How it works Google Web Toolkit Weekly Report 09/01/2008-09/08/200 Code against Java UI libraries 3 How it works
More informationJava: Graphical User Interfaces (GUI)
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, and Bertrand Meyer Java: Graphical User Interfaces (GUI) With material from Christoph Angerer The essence of the Java Graphics API Application
More informationAssignment 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 informationGRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1
AJAX & GWT Trey Roby GRITS 5/14/09 Roby - 1 1 Change The Web is Changing Things we never imagined Central to people s lives Great Opportunity GRITS 5/14/09 Roby - 2 2 A Very Brief History of Computing
More informationJSR 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 informationEnterprise Java TM Web Apps with Google Open Source Technology
Enterprise Java TM Web Apps with Google Open Source Technology Dhanji R. Prasanna Google, Inc. Dhanji R. Prasanna Software Engineer at Google > Co-author JAX-RS: Java API for RESTful Web Services JSR-303:
More informationJavaFX. JavaFX Overview Release E
JavaFX JavaFX Overview Release 2.2.21 E20479-06 April 2013 Learn about the JavaFX 2 and later technology, read a feature summary, explore the sample applications, and follow the high-level steps to create
More informationWeb 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 informationFilthy 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 informationQt + 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 informationRadical 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 informationLeveraging the Model-View- Presenter Pattern in Rich Client Applications
Leveraging the Model-View- Presenter Pattern in Rich Client Applications Patrick Paulin Eclipse RCP Trainer and Consultant RCP Quickstart patrick@rcpquickstart.com www.rcpquickstart.com/training/presentations/mvp-and-rcp-ew2008
More informationHere is a list of a few of the components located in the AWT and Swing packages:
Inheritance Inheritance is the capability of a class to use the properties and methods of another class while adding its own functionality. Programming In A Graphical Environment Java is specifically designed
More informationJava Concurrency in practice Chapter 9 GUI Applications
Java Concurrency in practice Chapter 9 GUI Applications INF329 Spring 2007 Presented by Stian and Eirik 1 Chapter 9 GUI Applications GUI applications have their own peculiar threading issues To maintain
More informationAnnouncements. Introduction. Lecture 18 Java Graphics and GUIs. Announcements. CSE 331 Software Design and Implementation
CSE 331 Software Design and Implementation Lecture 18 Java Graphics and GUIs Announcements Leah Perlmutter / Summer 2018 Announcements Quiz 6 due Thursday 8/2 Homework 7 due Thursday 8/2 Regression testing
More informationCS Exam 1 Review Suggestions
CS 235 - Fall 2015 - Exam 1 Review Suggestions p. 1 last modified: 2015-09-30 CS 235 - Exam 1 Review Suggestions You are responsible for material covered in class sessions, lab exercises, and homeworks;
More informationCSE wi Final Exam 3/12/18. Name UW ID#
Name UW ID# There are 13 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes,
More informationWidgets. 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 informationJDirectoryChooser 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 informationComet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios
Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Simone Bordet sbordet@intalio.com 1 Agenda What are Comet web applications? Impacts of Comet web applications WebSocket
More informationCS 251 Intermediate Programming GUIs: Components and Layout
CS 251 Intermediate Programming GUIs: Components and Layout Brooke Chenoweth University of New Mexico Fall 2017 import javax. swing.*; Hello GUI public class HelloGUI extends JFrame { public HelloGUI ()
More informationLecture 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 informationHeavyweight 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 informationUser 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 informationOutline. 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 informationIntroduction to the JAVA UI classes Advanced HCI IAT351
Introduction to the JAVA UI classes Advanced HCI IAT351 Week 3 Lecture 1 17.09.2012 Lyn Bartram lyn@sfu.ca About JFC and Swing JFC Java TM Foundation Classes Encompass a group of features for constructing
More informationJava 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 informationIntroduction 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 informationJavaFX Basics. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved. 1.
JavaFX Basics rights reserved. 1 Motivations JavaFX is a new framework for developing Java GUI programs. The JavaFX API is an excellent example of how the object-oriented principle is applied. This chapter
More informationDistributed Collaboration - Assignment 1: Multi-View 1-User IM
Distributed Collaboration - Assignment 1: Multi-View 1-User IM Date Assigned:??? 1-View Target Date:??? Multi-View Submission Date:??? Objectives: Understand the use of observer pattern in user -interface
More informationCS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers
CS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers 1 Critical sections and atomicity We have been seeing that sharing mutable objects between different threads is tricky We need some
More informationJava How to Program, 9/e. Copyright by Pearson Education, Inc. All Rights Reserved.
Java How to Program, 9/e Copyright 1992-2012 by Pearson Education, Inc. All Rights Reserved. Overview capabilities for drawing two-dimensional shapes, controlling colors and controlling fonts. One of
More informationGraphics. 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 informationJava Technology for the Mobile Mass Market
Java Technology for the Mobile Mass Market Series 40 From Nokia Michael Rhodes Sam Taylor Senior Specialist Nokia Mobile Phones Principal Engineer Nokia Mobile Phones TS-4447 Purpose Insights Into Nokia
More informationGetting started with Jubula - an UI test automation framework
Getting started with Jubula - an UI test automation framework June 2017, Markus Tiede @MarkusTiede http://www.open-co.de 01 Introduction to Jubula 02 ITE vs. IDE 03 Getting started 04 Jubula 5.0 new features
More informationBuilding Web Applications
Building Web Applications Mendel Rosenblum CS142 Lecture Notes - Building Web Applications Good web applications: Design + Implementation Some Design Goals: Intuitive to use Don't need to take a course
More informationCSC207 Week 4. Larry Zhang
CSC207 Week 4 Larry Zhang 1 Logistics A1 Part 1, read Arnold s emails. Follow the submission schedule. Read the Q&A session in the handout. Ask questions on the discussion board. Submit on time! Don t
More informationLecture 18 Java Graphics and GUIs
CSE 331 Software Design and Implementation The plan Today: introduction to Java graphics and Swing/AWT libraries Then: event-driven programming and user interaction Lecture 18 Java Graphics and GUIs None
More informationHuman-Computer Interaction IS4300
Human-Computer Interaction IS4300 1 I4 Swing! Due Now Implement a Java applet to provide online ordering for your favorite restaurant. The interface need not be functional, but the controls should be laid
More informationGoogle Web Toolkit (GWT)
Google Web Toolkit (GWT) St. Louis Java SIG April 12, 2007 Brad Busch Andrew Prunicki What is GWT? GWT is a much different way to develop web applications from
More informationImprove 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 informationProgramming 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 informationAgenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present and Future Java EE 7 Java SE 8 Java Embedded
Virtual Developer Day: Java 2014 May 6 th 9:00 a.m. - 1:00 p.m. PDT / 12:00 p.m. - 4:00 p.m. EDT / 1:00 p.m. 5:00 p.m. BRT Agenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present
More informationKeep on Swinging. Productivity layers on top of SWT. Karsten Schmidt SAP AG.
Keep on Swinging Productivity layers on top of SWT Karsten Schmidt SAP AG k.schmidt@sap.com Keep on Swinging - Agenda! Background! SAP NetWeaver Developer Studio! The UI (Container) Framework! The SAP
More informationCS 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 informationHeuristic Evaluation Gempots.com
Heuristic Evaluation Gempots.com Heuristic Evaluation (HE) is typically done on major elements of the application. This is an example of the application of a HE to a design interface. The HE evaluation
More informationMarcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science
Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm } Abstract Window Toolkit Delegates creation and
More informationExam Questions 1Z0-895
Exam Questions 1Z0-895 Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam https://www.2passeasy.com/dumps/1z0-895/ QUESTION NO: 1 A developer needs to deliver a large-scale
More informationReview of Mobile Web Application Frameworks
Review of Mobile Web Application Frameworks Article Number: 909 Rating: Unrated Last Updated: Mon, May 9, 2011 at 10:57 AM If you are serious about getting your website or web application mobile-friendly,
More informationOverview. Applets. A Java GUI inside your browser! Important methods Drawing images Playing audio Getting input parameters Double buffering
Java Applets don't panic about frogs!
More informationQueen s University Faculty of Arts and Science School of Computing CISC 124 Final Examination December 2004 Instructor: M. Lamb
Queen s University Faculty of Arts and Science School of Computing CISC 124 Final Examination December 2004 Instructor: M. Lamb HAND IN Answers recorded on Examination paper This examination is THREE HOURS
More informationIT101. Graphical User Interface
IT101 Graphical User Interface Foundation Swing is a platform-independent set of Java classes used for user Graphical User Interface (GUI) programming. Abstract Window Toolkit (AWT) is an older Java GUI
More information