Download An Introduction to Control Structures

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Common Elements of
Graphical User Interfaces
Chapter 6
Java Programming: Advanced Topics
1
Objectives
• Learn the characteristics of a graphical user
interface
• Explore the contents of the Java Foundation
Classes
• Discover how the JFC supports creating GUIs
for the Java platform
• Design GUIs with layouts that dynamically adjust
to screen resolution and window size
• Include predefined components such as text
fields, buttons, and multimedia elements in your
GUI
Java Programming: Advanced Topics
2
Objectives (Cont.)
• See how the JFC provides a framework for
interacting with the user in event-driven
programs
• Write code using component, container, and
layout manager classes of the AWT and Swing
• State the name of the event class for any
specified listener interface in the java.awt.event
package
• Write code to implement the paintComponent
method of a javax.swing.Jcomponent
component
Java Programming: Advanced Topics
3
Main Features and Terminology
of a GUI
• Components are predefined standard elements
(such as buttons, text fields, frame windows, and
dialog boxes)
• The layout managers control the way
components are arranged within a container
• Graphics: drawing in the graphics context for a
component
• Graphics context: is the area on the display
screen where a component is positioned
Java Programming: Advanced Topics
4
Main Features and Terminology
of a GUI (Cont.)
• Painting: the process of displaying components
or refreshing the display of components on the
screen
• Events can be triggered by the operating system
or by user actions
• The adapter is a class that implements all the
methods of the interface by providing empty
methods for all of them
• Each listener interface that has more than one
method also has a corresponding adapter class
Java Programming: Advanced Topics
5
Introducing the Java Foundation
Classes
• The goal of the JFC is to simplify the
development of 100% Pure Java programs for
network or standalone environments
• The classes enable you to:
– Design GUIs that reflect the operating system that is
host to the JVM
– Create your own platform-independent interface
– Use a look and feel defined for the Java platform and
common across all implementations of the JVM
Java Programming: Advanced Topics
6
Introducing the Java Foundation
Classes
Java Programming: Advanced Topics
7
Introducing the Java Foundation
Classes
Java Programming: Advanced Topics
8
Abstract Windowing Toolkit API
Java Programming: Advanced Topics
9
Abstract Windowing Toolkit API
(Cont.)
Java Programming: Advanced Topics
10
Abstract Windowing Toolkit API
(Cont.)
Java Programming: Advanced Topics
11
Event Model
• Define any class to be an event handler by
implementing a listener interface
• Call a method of a component class to register
the listener with the component
• When an event that relates to the component
occurs, only the registered listeners are notified
and passed a copy of the event
• The event model is consistent with the
JavaBeans interface
Java Programming: Advanced Topics
12
Swing API
• The Swing API consists of more than 250
classes and 75 interfaces grouped into the
following categories:
– JComponent: extends the AWT class
Container and a set of components that are
subclasses of JComponent
– Nonvisible support classes that provide
important services
– A set of related interfaces that are
implemented by Swing component and
support classes
Java Programming: Advanced Topics
13
Swing Components
Java Programming: Advanced Topics
14
Swing Components (Cont.)
Java Programming: Advanced Topics
15
Swing Components (Cont.)
Java Programming: Advanced Topics
16
Swing Components (Cont.)
Java Programming: Advanced Topics
17
Separable Model Architecture
• Swing components separate the manipulation of
data associated with a component from the
rendering or graphical-representation
component and its contents
• The Swing API uses a separable model
architecture
• Swing models use two different styles of
notification:
– Lightweight
– Stateful
• The Swing API defines a set of model interfaces
Java Programming: Advanced Topics
18
Swing Model Interfaces
Java Programming: Advanced Topics
19
Swing Model Interfaces (Cont.)
Java Programming: Advanced Topics
20
An Example of JFC Program
Java Programming: Advanced Topics
21
Layout Managers
• Layout managers automate the positioning of
components within containers
• Standard layout managers:
–
–
–
–
–
–
BorderLayout
FlowLayout
GridLayout
GridBagLayout
BoxLayout
CardLayout
• The javax.swing.JTabbedPane and
javax.swing.JSplitPane containers in the Swing
API have built-in layout characteristics
Java Programming: Advanced Topics
22
Layout Managers and Related
Interfaces
Java Programming: Advanced Topics
23
Border Layouts
• The BorderLayout class implements the
LayoutManager2 interface to support a container
that holds up to five components:
–
–
–
–
–
North
South
West
East
Center
• By default, the JWindow, JFrame, and JDialog
containers have border layouts
Java Programming: Advanced Topics
24
The BorderLayout Strategy
Java Programming: Advanced Topics
25
Flow Layouts
• The class FlowLayout implements the
LayoutManager interface
• Components are arranged in a row across
the area of the container
• Components in a flow layout retain their
preferred size
• By default, JPanel objects have flow
layouts
Java Programming: Advanced Topics
26
A FlowLayout Example
Java Programming: Advanced Topics
27
Grid Layouts
• The class GridLayout implements the
LayoutManager2 interface
• GridLayout manager divides the area of the
container into a grid of equally sized rows and
columns
• Components are automatically put into the next
cell, in a left to right order, filling rows from top to
bottom
Java Programming: Advanced Topics
28
A GridLayout Example
Java Programming: Advanced Topics
29
Grid-Bag Layouts
• The class GridBagLayout implements the
LayoutManager2 interface to support grid-bag
layouts
• A grid-bag layout is based on a rectangular grid,
and it uses a helper class, GridBagConstraints,
to specify how each component should be
located within the grid
Java Programming: Advanced Topics
30
A GridBagLayout Example
Java Programming: Advanced Topics
31
Events
• Events: objects that encapsulate changes in
state that are initiated by the user or the
operating system
• The AWT API includes the package
java.awt.event of the classes that encapsulate
the events that relate to the GUI components in
your application or applet
Java Programming: Advanced Topics
32
AWT Event Classes
Java Programming: Advanced Topics
33
AWT Event Classes(Cont.)
Java Programming: Advanced Topics
34
Swing Event Classes
Java Programming: Advanced Topics
35
Selected Methods of the Event
Classes
Java Programming: Advanced Topics
36
Selected Methods of the Event
Classes (Cont.)
Java Programming: Advanced Topics
37
Events that Start Long
Operations
Java Programming: Advanced Topics
38
Painting
• Painting: the act of drawing onto the graphics
context of a component
• All objects that are instances of subclasses of
java.awt.Component handle their own painting
• The key methods:
–
–
–
–
void paintComponent (Graphics context)
void paint (Graphics context)
void repaint (long time)
void update (Graphics context)
Java Programming: Advanced Topics
39
Basic Support for Graphics
• The AWT API provides basic graphics support
through the class Graphics
• The drawing methods of the class Graphics are
instance methods of the Graphics class, and
each instance of Graphics is the graphics
context for a component
• The Graphics class provides a number of
methods for drawing onto a component
Java Programming: Advanced Topics
40
Java 2D API
• The basic support for drawing was lacking for
high-quality graphics
• The goal was to create an API that addressed
the needs of graphics professionals
• The Java 2D API was created and included as
part of the JFC
Java Programming: Advanced Topics
41
Notable Java 2D Features
Java Programming: Advanced Topics
42
Summary
• The JFC consists of five major APIs, including
the classes and interfaces in the AWT and
Swing APIs that you use to program a GUI for
an application or applet
• Layout managers are used to arrange the
components in a way that adjusts for screen
resolutions and window resizings
• Standard layout managers include
BorderLayout, FlowLayout, GridLayout,
GridBagLayout, Box, and CardLayout
• Each component class supports a number of
events that are appropriate to its type of
component
Java Programming: Advanced Topics
43
Summary (Cont.)
• The AWT contains a hierarchy of event classes
for different kinds of user-initiated events, such
as ComponentEvent, MouseEvent, KeyEvent,
ItemEvent, TextEvent, and ActionEvent
• Each listener interface that has more than one
method also has a corresponding adapter class
• Painting is the act of drawing onto the graphics
context of a component, and drawing methods of
the Graphics class are paintComponent, paint,
and update methods of a component
• The goal of the Java 2D API addresses the
needs of graphics professionals
Java Programming: Advanced Topics
44