Analysis to Program Design, 3e

eyelashesnectarineSoftware and s/w Development

Nov 3, 2013 (3 years and 8 months ago)

70 views

Java Programming: From Problem
Analysis to Program Design, 3e


Chapter 13

Advanced GUIs and Graphics


Java Programming: From Problem Analysis to Program Design, 3e

2

Chapter Objectives


Learn about applets


Explore the
class

Graphics


Learn about the
class

Font


Explore the
class

Color


Java Programming: From Problem Analysis to Program Design, 3e

3

Chapter Objectives (continued)


Learn to use additional Layout managers


Become familiar with more GUI
components


Learn how to create menu
-
based programs


Explore how to handle key and mouse
events

Java Programming: From Problem Analysis to Program Design, 3e

4

Inheritance Hierarchy of GUI Classes

Java Programming: From Problem Analysis to Program Design, 3e

5

Constructors and Methods of the
class

Component

Java Programming: From Problem Analysis to Program Design, 3e

6

Constructors and Methods of the
class

Component
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

7

Constructors and Methods of the
class

Component
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

8

Constructors and Methods of the
class

Component
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

9

Constructors and Methods of the
class

Container

Java Programming: From Problem Analysis to Program Design, 3e

10

Applets


Applet: a Java program that is embedded
within a Web page and executed by a Web
browser


Create an applet by extending the
class

JApplet


class

JApplet

contained in package
javax.swing

Java Programming: From Problem Analysis to Program Design, 3e

11

Members of
class

JApplet

Java Programming: From Problem Analysis to Program Design, 3e

12

Members of
class

Japplet
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

13

Applets (continued)


No
main

method


Methods
init
,
start
, and
paint

guaranteed to be invoked in sequence


To develop an applet


Override any/all of the methods above


Java Programming: From Problem Analysis to Program Design, 3e

14

Applet Methods


init

Method


Initializes variables


Gets data from user


Places various GUI components


paint

Method


Performs output

Java Programming: From Problem Analysis to Program Design, 3e

15

Skeleton of a Java Applet

import

java.awt.Graphics;

import

javax.swing.JApplet;


public class

WelcomeApplet
extends

JApplet

{


}

Java Programming: From Problem Analysis to Program Design, 3e

16

Applet Displaying Welcome
Message

//Welcome Applet



import

java.awt.Graphics;

import

javax.swing.JApplet;


public class

WelcomeApplet
extends

JApplet

{


public void

paint(Graphics g)


{


super
.paint(g);
//Line 1


g.drawString(
"
Welcome to Java Programming
"
,


30, 30);
//Line 2


}

}


Java Programming: From Problem Analysis to Program Design, 3e

17

HTML to Run Applet

Java Programming: From Problem Analysis to Program Design, 3e

18

class

Font


Shows text in different fonts


Contained in package java.awt


Available fonts


Serif/SanSerif


Monospaced


Dialog/DialogInput


Arguments for constructor


String specifying the Font face name


int

value specifying Font style


int

value specifying Font size


Expressed in points (72 points = 1 inch)

Java Programming: From Problem Analysis to Program Design, 3e

19

Constructors and Methods of the
class

Font

Java Programming: From Problem Analysis to Program Design, 3e

20

Constructors and Methods of the
class

Font
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

21

Constructors and Methods of the
class

Font
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

22

class

Color


Shows text in different colors


Changes background color of component


Contained in package
java.awt


Java Programming: From Problem Analysis to Program Design, 3e

23

Constructors of the
class

Color

Java Programming: From Problem Analysis to Program Design, 3e

24

Constructors of the
class

Color

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

25

Constants Defined in the
class

Color

Java Programming: From Problem Analysis to Program Design, 3e

26

Constants Defined in the
class

Color

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

27

Constants Defined in the
class

Color

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

28

class

Graphics


Provides methods for drawing items such as
lines, ovals, and rectangles on the screen


Contains methods to set the properties of
graphic elements including clipping area,
fonts, and colors


Contained in the package
java.awt

Java Programming: From Problem Analysis to Program Design, 3e

29

Constructors and Methods of the
class

Graphics

Java Programming: From Problem Analysis to Program Design, 3e

30

Constructors and Methods of the
class

Graphics
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

31

Constructors and Methods of the
class

Graphics
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

32

Constructors and Methods of the
class

Graphics
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

33

Constructors and Methods of the
class

Graphics
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

34

Constructors and Methods of the
class

Graphics
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

35

Constructors and Methods of the
class

Graphics
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

36

Constructors and Methods of the
class

Graphics
(continued)

Java Programming: From Problem Analysis to Program Design, 3e

37

Differences Between Applets and
GUI Applications


Applets


Derived from
JApplet


No main method


Uses
init

method


Displayed by HTML


Sets title in HTML


Size set in HTML


Applet closes when
HTML doc closes


GUI applications


class extends JFrame


Invokes main method


Uses constructors


Uses method
setVisible


Uses
setTitle

method


Uses method
setSize


Closes with
Exit

button

Java Programming: From Problem Analysis to Program Design, 3e

38

Converting a GUI Application to
an Applet


Change
JFrame

to
JApplet



Change constructor to method
init


Remove method calls such as
setVisible
,
setTitle
,
setSize


Remove the method
main



If applicable, remove
Exit

button/all code
associated with it (e.g. action listener)

Java Programming: From Problem Analysis to Program Design, 3e

39

Additional GUI Components


JTextArea


JCheckBox


JRadioButton


JComboBox


JList

Java Programming: From Problem Analysis to Program Design, 3e

40

JTextArea


Can collect multiple lines of input from user


Can display multiple lines of output


Pressing Enter key separates lines of text


Each line ends with newline character

\
n’


Derived from
class

JTextComponent


Java Programming: From Problem Analysis to Program Design, 3e

41

JTextArea

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

42

Methods Inherited by
class

JTextArea

from Parent
class

JTextComponent

Java Programming: From Problem Analysis to Program Design, 3e

43

JTextArea

Example

Java Programming: From Problem Analysis to Program Design, 3e

44

JCheckBox


User selects from predefined values


Example of a toggle button


Clicking
JCheckBox

generates item event


Use
interface

ItemListener

and its
abstract method
itemStateChanged

to
handle event


Java Programming: From Problem Analysis to Program Design, 3e

45

Constructors and Methods of
class

JCheckBox

Java Programming: From Problem Analysis to Program Design, 3e

46

Constructors and Methods of
class

JCheckBox

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

47

Constructors and Methods of
class

JCheckBox

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

48

Constructors and Methods of
class

JCheckBox

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

49

JRadioButton


Created same way as check boxes


Placed in content pane of applet


Forces user to select only one radio button at a
time


You create a button group to group radio buttons


Generates an
ItemEvent


interface

ItemListener

and method
itemStateChanged

used to handle events

Java Programming: From Problem Analysis to Program Design, 3e

50

JRadioButton

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

51

JRadioButton

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

52

JRadioButton

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

53

JRadioButton

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

54

JComboBox


Commonly known as a drop
-
down list



Used to select an item from a list of
possibilities



Generates an
ItemEvent



Event monitored by
ItemListener


ItemListener

invokes method
itemStateChanged


Java Programming: From Problem Analysis to Program Design, 3e

55

Constructors of
class

JComboBox

Java Programming: From Problem Analysis to Program Design, 3e

56

Applet with
JCheckBox
,
JComboBox
, and
JRadioButton

Java Programming: From Problem Analysis to Program Design, 3e

57

Constructors of
class

JList

Java Programming: From Problem Analysis to Program Design, 3e

58

Constructors of
class

Jlist

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

59

Constructors of
class

Jlist

(continued)

Java Programming: From Problem Analysis to Program Design, 3e

60

Layout Managers


FlowLayout


Default layout manager


Places components from left to right, center by default,
until no more items can be placed



Can align each line left, center, or right



Default alignment: LEFT


GridLayout


Similar to
FlowLayout


All rows (columns) have same number of components



All components have the same size


Java Programming: From Problem Analysis to Program Design, 3e

61

Layout Managers (continued)


BorderLayout


Items placed into one of 5 specific regions


NORTH/SOUTH


EAST/WEST


CENTER


NORTH and SOUTH components extend horizontally
(completely span one edge to the other)


EAST and WEST components extend vertically
between components in NORTH and SOUTH regions


CENTER component expands to occupy any unused
regions

Java Programming: From Problem Analysis to Program Design, 3e

62

Menus


Allow for various functions without cluttering
GUI with too many components


Can be attached to objects such as
JFrame

and
JApplet

(
setJMenuBar

method)


To set a menu bar

private JMenuBar menuMB =


new

JMenuBar();

setJMenuBar(menuMB);


Add menus to menu bar; add menu items to menu


Order of menus added = Order of appearance

Java Programming: From Problem Analysis to Program Design, 3e

63

Key and Mouse Events

Java Programming: From Problem Analysis to Program Design, 3e

64

Chapter Summary


Creating Applets


class

Font


class

Graphics


class

Color


Differences between Applet and GUI
application


Converting GUI application to Applet

Java Programming: From Problem Analysis to Program Design, 3e

65

Chapter Summary (continued)


GUI components


JTextArea


JCheckBox


JRadioButton


Layout managers


Menus


Key and mouse events