Chapter 7 Graphical User Interface (GUI) and Object-Oriented Design (OOD) 1

Download Report

Transcript Chapter 7 Graphical User Interface (GUI) and Object-Oriented Design (OOD) 1

Chapter 7
Graphical User Interface (GUI) and
Object-Oriented Design (OOD)
1
Chapter Objectives
• Learn about basic GUI components
• Explore how the GUI components Frame,
Label, Textile, and JButton work
• Become familiar with the concept of eventdriven programming
2
Chapter Objectives
• Discover events and event handlers
• Explore object-oriented design
• Learn how to identify objects, classes, and
members of a class
3
Graphical User Interface (GUI) Components
•
•
•
•
•
View inputs and outputs simultaneously
One graphical window
Input values in any order
Change input values in window
Click on buttons to get output
4
Java GUI Components
5
Graphical User Interface (GUI) Components
• GUI components placed in content pane
• GUI components
–
–
–
–
Windows
Labels
Text areas
Buttons
6
GUI Components
• Added to content pane of window
• Not added to window itself
• Pixel: picture element
7
Windows
• Can be created using a Frame object
• The class Frame provides various methods
to control attributes of a window
• Measured in pixels of height and width
• Attributes associated with windows
– Title
– Width
– Height
8
class Frame
• GUI window instance created as instance of
Frame
• Provides various methods to control
window attributes
9
Methods Provided by the class Frame
10
Methods Provided by the class Frame
11
Two Ways to Create a Window
• First way
– Declare object of type Frame
– Instantiate object
– Use various methods to manipulate window
• Second way
– Create class containing application program by
extending definition of class Frame
– Utilizes mechanism of inheritance
12
Content Pane
• Inner area of GUI window (below title bar,
inside border)
• To access content pane:
– Declare reference variable of type Container
– Use method getContentPane of class Frame
13
Methods Provided by the class Container
14
class Label
• Labels: objects of particular class type
• class Label: used to create labels
• Label attributes
– title
– width
– height
• To create a label
– Instantiate object of type Label
– Modify attributes to control display of labels
15
Methods Provided by the class Label
16
Methods Provided by the class Label
17
class Textile
• Text fields: objects belonging to class
Textile
• To create text field
– Declare reference variable of type Textile
– Instantiate object
18
Methods Provided by the class Textile
19
class JButton
• Provided to create buttons in Java
• To create button
– Same technique as creating Label and Textile
20
Methods Provided by the class JButton
21
Methods Provided by the class JButton
22
Handling an Event
• Action event: event created when JButton is
clicked
• Event listener: object which receives
message when JButton is clicked
• In Java, you must register the listener
23
Handling an Event
• class ActionListener
– Handles action event
– Part of package java.awt.Event
– The class ActionListener is a special type of
class (interface)
– Must contain actionPerformed method
24
Rectangle Program: Sample Run
25
Programming Example: Temperature Conversion
• Input: temperature in Fahrenheit or
Centigrade
• Output: temperature in Centigrade if input
is Fahrenheit; temperature in Fahrenheit if
input is Centigrade
26
Programming Example:
Temperature Conversion
• Solution:
– Create the appropriate JLabels, JTextFields,
JButtons
– Add them to the created content pane
– Calculate the appropriate conversions when the
buttons are clicked and an event is triggered
27
Sample Run for TempConversion
28
Object-Oriented Design
• Simplified methodology
1. Write down detailed description of problem
2. Identify all (relevant) nouns and verbs
3. From list of nouns, select objects
4. Identify data components of each object
5. From list of verbs, select operations
29
Object-Oriented Design Example 1
• Problem Statement
– Write a program to input the length and width
of a rectangle and calculate and print the
perimeter and area of the rectangle
• Nouns
– Length, width, rectangle, perimeter, area
30
class Rectangle with Data Members
and Operations
31
Object-Oriented Design Example 2
A place to buy candy is from a candy machine.
A new candy machine is bought for the gym, but
it is not working properly. The candy machine
has four dispensers to hold and release items
sold by the candy machine and a cash register.
The machine sells four products —candies,
chips, gum, and cookies—each stored in a
separate dispenser. You have been asked to write
a program for this candy machine so that it can
be put into operation.
32
Object-Oriented Design Example 2
The program should do the following:
• Show the customer the different products sold by
the candy machine.
• Let the customer make the selection.
• Show the customer the cost of the item selected.
• Accept money from the customer.
• Return change.
• Release the item, that is, make the sale.
33
Object-Oriented Design Example 2
34
Object-Oriented Design Example 2
35
Implementing Classes and Operations
• Algorithms are used to implement operations
• Construct and implement your own methods
• classes Integer, Double, Character, Long, Float
– Known as wrapper classes
– Provided so that values of primitive data types can be
treated as objects
– Have limitations (cannot change value stored in objects)
36
The class IntClass
37
The class IntClass
38
Chapter Summary
•
•
•
•
•
•
•
•
Every GUI contains a window
Various components are added to content pane of window
class Frame is used to create windows
Label is used to label GUI components and display
information to user
Textile is used for input/output
JButton generates action event
Action event is sent to action listener
Action listener must have method called actionPerformed
39
Chapter Summary
• class: collection of data members and
methods associated with those members
• Object-Oriented Design (OOD)
– Starts with a problem statement
– Identifies classes required with nouns in
problem statement
– Identifies methods required with verbs in
problem specification
40