0% found this document useful (0 votes)
28 views8 pages

Widget Toolkits: - Assignment 2 Is Posted - Also, Based Code Is Provided With Assignment Description

The document discusses widget toolkits, which define GUI components that programmers can access via an API. Widget toolkits typically use an event-driven model where the program responds to user actions. They provide common components like buttons and menus, and ensure consistent look and feel across applications. Widgets can be heavyweight, using native OS components, or lightweight, where the toolkit draws its own components on a canvas. The document compares Java's AWT and Swing toolkits, and also describes SWT which provides a common API for native widgets across platforms.

Uploaded by

littlescarface
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views8 pages

Widget Toolkits: - Assignment 2 Is Posted - Also, Based Code Is Provided With Assignment Description

The document discusses widget toolkits, which define GUI components that programmers can access via an API. Widget toolkits typically use an event-driven model where the program responds to user actions. They provide common components like buttons and menus, and ensure consistent look and feel across applications. Widgets can be heavyweight, using native OS components, or lightweight, where the toolkit draws its own components on a canvas. The document compares Java's AWT and Swing toolkits, and also describes SWT which provides a common API for native widgets across platforms.

Uploaded by

littlescarface
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

1/31/2011

Widget Toolkits

Assignment 2 Code
• Assignment 2 is posted
• Also, based code is provided with assignment
description

1
1/31/2011

Take Aways
• Widget toolkits overview
• Event-driven program
• Common widget types
• Lightweight vs heavyweight widgets

Widget toolkits
• Also called widget libraries or GUI toolkits
• Software bundled with a window manager,
operating system, or application platform
• Defines a set of GUI components that can be
used by programmers
• Programmers access these GUI components via
an application programming interface (API)
• Users use these components to control
application

2
1/31/2011

Event-driven programming
• Widget toolkits typically support event-driven
programming model
• Reactive systems
– User action -> program response
– Most of the time the program sits around doing
nothing
• Widget toolkit supports a mechanism for
mapping user action on widget to appropriate
application code to handle that action

Other Benefits of Widget Toolkits


• Look and Feel
– Look: The visual appearance of objects on the
display
– Feel: The behaviour of the program in response to
user actions
• Widget toolkits support look and feel
– Would you recognize a Java application?
– Given only display (excluding window frames)
would you recognize a windows application?

3
1/31/2011

Typical GUI Components


• Command input
– Buttons, menus (pie, context, application)
• Data input-output
– Check box, Combo box, Drop-down list, Grid view,
List box, Radio button, Scrollbar, Slider, Spinner,
Text box
• Informational
– Balloon help, label, infobar, progress bar, tooltip,
etc.

Typical GUI Components (2)


• Containers
– Check box, Combo box, Drop-down list, Grid view, List
box, Radio button, Scrollbar, Slider, Spinner, Text box
• Navigational
– Address bar, Breadcrumb, Hyperlink, Tree view
• Special windows
– About box, Alert dialog box, Dialog box, File dialog,
Inspector window, Modal window, Palette window
• Also layout strategies for components, etc.

4
1/31/2011

Heavyweight Widgets
• Operating system typically includes built-in
widget toolkit
– OS widgets are called heavyweight widgets
• Benefits
– Events generated by user action is passed by OS
directly to components
– Preserves OS look and feel
• Disadvantages
– EITHER OS specific programming, OR Widgets are a
greatest common subset of those available on
different platforms

Lightweight widget toolkits


• Application built with widget toolkit gets one
heavyweight component
– An application window
• OS delivers all user generated events to that
window
• Widget toolkit draws its own widgets and is
responsible for mapping events to their
corresponding widgets

5
1/31/2011

Java
• Java has two primary widget toolkits
– AWT
– Swing
• AWT is a heavyweight toolkit
– Components in AWT are OS components, mapped
onto the Java language
• Objects like Button, Canvas, Choice, Frame, Label, List,
MenuBar, Panel, PopupMenu, Scrollbar, TextArea, Window.
– OS is aware of these components and can map events
onto them

AWT Toolkit
• AWT is minimal toolkit
– No Spinner, no combo box, no progressbar
• Idea is to try to identify components that are
supported on most platforms and map the
Java language to these
• Means that programmers need to re-create
unsupported widgets, or find a library that
creates these unsupported widgets
• AWT itself is “least-common denominator”

6
1/31/2011

Swing Toolkit
• Originally a separate download
• Toolkit is a collection of widgets implemented
in Java
• Basic mapping is:
– Java gets a Canvas object inside a window from
the OS
– Canvas object also has graphics object
– Java code is used with the graphics object to draw
swing components onto Canvas.

Problems with Swing


• One big problem with Swing+AWT was z-order
issues
• If users mixed OS widgets (e.g. buttons,
Canvas) with swing widgets (e.g. JMenuBar)
– Widget visibility was irregular and unpredictable
– Two different rendering pipelines, and OS pipeline
unaware of Swing rendering
• Supposedly fixed in JDK 6.0 +
• Swing was all-or-nothing

7
1/31/2011

Java SWT
• Standard Widget Toolkit
• OS components written in Java but rendered
using native OS routines
– SWT and Swing are different tools that were built with
different goals in mind. The purpose of SWT is to
provide a common API for accessing native widgets
across a spectrum of platforms. The primary design
goals are high performance, native look and feel, and
deep platform integration. Swing, on the other hand,
is designed to allow for a highly customizable look and
feel that is common across all platforms

• Swing • SWT
• Components written in Java • Java wrapper for native
and rendered in Java libraries, with special
– Consistency across platforms purpose components added
– More extensive in Java
• Platform feel issues – Deeper integration with OS to
preserve look and feel
– On Mac OS X, default buttons
actually have an animated – Simpler without extraneous
pulsing glow to focus the functionality
user's attention on them • Portability issues
– Good integration with Win32,
but problems on other
platforms
– Very difficult to port

You might also like