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
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Σχόλια 0
Συνδεθείτε για να κοινοποιήσετε σχόλιο