Chapter 1

eyelashesnectarineSoftware and s/w Development

Nov 3, 2013 (4 years and 4 days ago)

95 views

Chapter 6: Graphical User Interface
(GUI) and Object
-
Oriented Design
(OOD)

J
ava

P
rogramming:


From Problem Analysis to Program Design,



Second Edition

Java Programming: From Problem Analysis to Program Design, Second Edition

2

Chapter Objectives


Learn about basic GUI components.


Explore how the GUI components
JFrame
,
JLabel
,
JTextField
, and
JButton

work.


Become familiar with the concept of event
-
driven programming.

Java Programming: From Problem Analysis to Program Design, Second Edition

3

Chapter Objectives


Discover events and event handlers.


Explore object
-
oriented design.


Learn how to identify objects, classes, and
members of a class.


Java Programming: From Problem Analysis to Program Design, Second Edition

4

Graphical User Interface (GUI)
Components


View inputs and outputs simultaneously.


One graphical window.


Input values in any order.


Change input values in window.


Click buttons to get output.


Java Programming: From Problem Analysis to Program Design, Second Edition

5

Java GUI Components

Java Programming: From Problem Analysis to Program Design, Second Edition

6

Graphical User Interface (GUI)
Components


GUI components placed in content pane.


GUI components:


Windows


Labels


Text areas


Buttons



Java Programming: From Problem Analysis to Program Design, Second Edition

7

GUI Components


Added to content pane of window.


Not added to window itself.


Pixel: A picture element.


Java Programming: From Problem Analysis to Program Design, Second Edition

8

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

Java Programming: From Problem Analysis to Program Design, Second Edition

9

class

JFrame


GUI window instance created as instance of
Frame.


Provides various methods to control window
attributes.


Java Programming: From Problem Analysis to Program Design, Second Edition

10

Methods Provided by the
class

JFrame

Java Programming: From Problem Analysis to Program Design, Second Edition

11

Methods Provided by the
class

JFrame

Java Programming: From Problem Analysis to Program Design, Second Edition

12

Two Ways to Create a Window


First way:


Declare object of type
JFrame
.


Instantiate object.


Use various methods to manipulate window.


Second way:


Create class
-
containing application program by
extending definition of
class

JFrame
.


Utilize mechanism of inheritance.

Java Programming: From Problem Analysis to Program Design, Second Edition

13

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

JFrame
.


Java Programming: From Problem Analysis to Program Design, Second Edition

14

Methods Provided by the class
Container

Java Programming: From Problem Analysis to Program Design, Second Edition

15

class

JLabel


Labels: Objects of a particular class type.


class

JLabel
: Used to create labels.


Label attributes:


Title


Width


Height


To create a label:


Instantiate object of type
JLabel
.


Modify attributes to control display of labels.

Java Programming: From Problem Analysis to Program Design, Second Edition

16

Methods Provided by the
class

JLabel

Java Programming: From Problem Analysis to Program Design, Second Edition

17

Methods Provided by the
class

JLabel

Java Programming: From Problem Analysis to Program Design, Second Edition

18

class

JTextField


Text fields: Objects belonging to
class

JTextField
.


To create a text field:


Declare reference variable of type
JTextField
.


Instantiate object.

Java Programming: From Problem Analysis to Program Design, Second Edition

19

Methods Provided by the
class

JTextField

Java Programming: From Problem Analysis to Program Design, Second Edition

20

class

JButton


Provided to create buttons in Java.


To create a button:


Use the same technique that is used to create
JLabel

and
JTextField
.

Java Programming: From Problem Analysis to Program Design, Second Edition

21

Methods Provided by the
class

JButton

Java Programming: From Problem Analysis to Program Design, Second Edition

22

Methods Provided by the
class

JButton

Java Programming: From Problem Analysis to Program Design, Second Edition

23

Handling an Event


Action event: An event created when
JButton

is clicked.


Event listener: An object that receives a
message when
JButton

is clicked.


In Java, you must register the listener.

Java Programming: From Problem Analysis to Program Design, Second Edition

24

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 the
actionPerformed

method.


Java Programming: From Problem Analysis to Program Design, Second Edition

25

Rectangle Program: Sample Run

Java Programming: From Problem Analysis to Program Design, Second Edition

26

Programming Example:

Temperature Conversion


Input:
Temperature in Fahrenheit or
Celsius.


Output:
Temperature in
Celsius
if input is
Fahrenheit; temperature in Fahrenheit if input
is
Celsius.


Java Programming: From Problem Analysis to Program Design, Second Edition

27

Programming Example:

Temperature Conversion

Solution:

1.
Create the appropriate
JLabels
,
JTextFields
,
JButtons
.

2.
Add them to the created content pane.

3.
Calculate the appropriate conversions when the
buttons are clicked and an event is triggered.

Java Programming: From Problem Analysis to Program Design, Second Edition

28

Sample Run for TempConversion

Java Programming: From Problem Analysis to Program Design, Second Edition

29

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.


Java Programming: From Problem Analysis to Program Design, Second Edition

30

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.


Java Programming: From Problem Analysis to Program Design, Second Edition

31

class

Rectangle

with Data
Members and Operations

Java Programming: From Problem Analysis to Program Design, Second Edition

32

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 of which is 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.


Java Programming: From Problem Analysis to Program Design, Second Edition

33

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.


Java Programming: From Problem Analysis to Program Design, Second Edition

34

Object
-
Oriented Design:

Example 2

Java Programming: From Problem Analysis to Program Design, Second Edition

35

Object
-
Oriented Design:

Example 2

Java Programming: From Problem Analysis to Program Design, Second Edition

36

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).

Java Programming: From Problem Analysis to Program Design, Second Edition

37

The
class

Integer

Java Programming: From Problem Analysis to Program Design, Second Edition

38

The
class

Integer

Java Programming: From Problem Analysis to Program Design, Second Edition

39

The
class

Integer

Integer num;

num =
new

Integer(86)

Java Programming: From Problem Analysis to Program Design, Second Edition

40

The
class

Integer

int

x;

Integer num;


num = 25;



This statement is equivalent to the statement:


num =
new

Integer(25);



The expression:



num = 25;


is referred to as
autoboxing
of the
int

type.

Java Programming: From Problem Analysis to Program Design, Second Edition

41

The
class

Integer

int

x;


Integer num;



The statement:


x = num;



This statement is equivalent to the statement:


x = num.intValue();



This statement is referred to as
auto unboxing

of the
int

type.

Java Programming: From Problem Analysis to Program Design, Second Edition

42

The
class

Integer


To compare the values of two
Integer

objects,
you can use the method
compareTo
.



If you want to compare the values of two
Integer

objects only for equality, then you can use the
method
equal
.

Java Programming: From Problem Analysis to Program Design, Second Edition

43

The
class

IntClass

Java Programming: From Problem Analysis to Program Design, Second Edition

44

The
class

IntClass

Java Programming: From Problem Analysis to Program Design, Second Edition

45

Chapter Summary


Every GUI contains a window.


Various components are added to the content pane
of a window.


class

Frame

is used to create windows.


JLabel

is used to label GUI components and
display information to user.


JTextFiled

is used for input/output.


JButton

generates action event.


Action event is sent to action listener.


Action listener must have method called
actionPerformed
.

Java Programming: From Problem Analysis to Program Design, Second Edition

46

Chapter Summary


A class is a collection of data members and methods
associated with those members.


Object
-
oriented design (OOD):


Starts with a problem statement.


Identifies required classes with nouns in problem
statement.


Identifies required methods with verbs in problem
statement.