Top Banner
Chapter 13: Advanced GUIs Chapter 13: Advanced GUIs and Graphics and Graphics J J ava ava P P rogramming: rogramming: From Problem Analysis to From Problem Analysis to Program Design, Program Design, Second Edition Second Edition
52

Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

Dec 22, 2015

Download

Documents

Arleen Davis
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

Chapter 13: Advanced GUIs Chapter 13: Advanced GUIs and Graphicsand Graphics

JJavaava PProgramming:rogramming:

From Problem Analysis to Program From Problem Analysis to Program Design,Design, Second EditionSecond Edition

Page 2: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Chapter Objectives Learn about applets. Explore the class Graphics. Learn about the class Font. Explore the class Color. 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.

Page 3: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Inheritance Hierarchy of GUI Classes

Page 4: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods of the class Component

Page 5: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods of the class Component

Page 6: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods of the class Component

Page 7: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods of the class Component

Page 8: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Applets

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 is contained in package javax.swing.

Page 9: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Applets

Page 10: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Applets

Page 11: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Applets

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.

Page 12: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Applet Methods init method:

Initializes variables.

Gets data from user.

Places various GUI components.

paint method:

Performs output.

Page 13: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Skeleton of a Java Applet

import java.awt.Graphics;import javax.swing.JApplet;

public class WelcomeApplet extends JApplet{

}

Page 14: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

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 }}

Page 15: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

HTML to Run Applet

Page 16: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

class Font Shows text in different fonts. Contained in package java.awt. Available fonts:

Serif/Sans Serif 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) .

Page 17: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

class Font

Page 18: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

class Color

Shows text in different colors.

Changes background color of component.

Contained in package java.awt.

Page 19: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

class Color

Page 20: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

class Color

Page 21: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

class Color

Page 22: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

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 areas, fonts, and colors.

Contained in the package java.awt.

Page 23: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

class Graphics

Page 24: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods for the class Graphics

Page 25: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods for the class Graphics

Page 26: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods for the class Graphics

Page 27: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods for the class Graphics

Page 28: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

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.

Page 29: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

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 and all code associated with it (for example, action listener).

Page 30: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Additional GUI Components

JTextArea

JCheckBox

JRadioButton

JComboBox

JList

Page 31: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

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.

Page 32: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JTextArea

Page 33: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JTextArea

Page 34: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JTextArea Example

Page 35: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

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.

Page 36: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JCheckBox

Page 37: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods of class JCheckBox

Page 38: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Constructors and Methods of class JCheckBox

Page 39: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JRadioButton Created same way as check boxes.

Placed in content pane of applet.

Forces user to select only one radion 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.

Page 40: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JRadioButton

Page 41: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JRadioButton

Page 42: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

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.

Page 43: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JComboBox

Page 44: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JComboBox

Page 45: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JList

Page 46: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

JList

Page 47: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Layout Managers FlowLayout

Default layout manager. Places components from left to right 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.

Page 48: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Layout Managers BorderLayout

Items placed into one of five 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.

Page 49: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

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.

Page 50: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Keyboard and Mouse Events

Page 51: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Chapter Summary

Creating applets

class Font

class Graphics

class Color

Differences between applets and GUI applications

Converting GUI applications to applets

Page 52: Chapter 13: Advanced GUIs and Graphics J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.

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

Chapter Summary

GUI components:

JTextArea

JCheckBox

JRadioButton

Layout managers

Menus

Keyboard and mouse events