Top Banner
Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics
65

Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Dec 30, 2015

Download

Documents

Della Hall
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: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

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

Chapter 12Advanced GUIs and Graphics

Page 2: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 2

Chapter Objectives

• Learn about applets

• Explore the class Graphics• Learn about the class Font• Explore the class Color

Page 3: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 4: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

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

Inheritance Hierarchy of GUI Classes

Page 5: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 5

Constructors and Methods of the class Component

Page 6: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 6

Constructors and Methods of the class Component (continued)

Page 7: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 7

Constructors and Methods of the class Component (continued)

Page 8: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 8

Constructors and Methods of the class Component (continued)

Page 9: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 9

Constructors and Methods of the class Container

Page 10: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 11: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 11

Members of class JApplet

Page 12: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 12

Members of class Japplet (continued)

Page 13: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 14: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 14

Applet Methods

• init Method– Initializes variables– Gets data from user– Places various GUI components

• paint Method– Performs output

Page 15: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 15

Skeleton of a Java Applet

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

public class WelcomeApplet extends JApplet{

}

Page 16: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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 }}

Page 17: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 17

HTML to Run Applet

Page 18: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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)

Page 19: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 19

Constructors and Methods of the class Font

Page 20: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 20

Constructors and Methods of the class Font (continued)

Page 21: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 21

Constructors and Methods of the class Font (continued)

Page 22: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 22

class Color

• Shows text in different colors

• Changes background color of component

• Contained in package java.awt

Page 23: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 23

Constructors of the class Color

Page 24: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 24

Constructors of the class Color (continued)

Page 25: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 25

Constants Defined in the class Color

Page 26: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 26

Constants Defined in the class Color (continued)

Page 27: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 27

Constants Defined in the class Color (continued)

Page 28: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 29: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 29

Constructors and Methods of the class Graphics

Page 30: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 30

Constructors and Methods of the class Graphics (continued)

Page 31: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 31

Constructors and Methods of the class Graphics (continued)

Page 32: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 32

Constructors and Methods of the class Graphics (continued)

Page 33: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 33

Constructors and Methods of the class Graphics (continued)

Page 34: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 34

Constructors and Methods of the class Graphics (continued)

Page 35: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 35

Constructors and Methods of the class Graphics (continued)

Page 36: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 36

Constructors and Methods of the class Graphics (continued)

Page 37: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 38: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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)

Page 39: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 39

Additional GUI Components

• JTextArea• JCheckBox• JRadioButton• JComboBox• JList

Page 40: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 41: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 41

JTextArea (continued)

Page 42: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 42

Methods Inherited by class JTextArea from Parent

class JTextComponent

Page 43: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 43

JTextArea Example

Page 44: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 45: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 45

Constructors and Methods of class JCheckBox

Page 46: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 46

Constructors and Methods of class JCheckBox (continued)

Page 47: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 47

Constructors and Methods of class JCheckBox (continued)

Page 48: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 48

Constructors and Methods of class JCheckBox (continued)

Page 49: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 50: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 50

JRadioButton (continued)

Page 51: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 51

JRadioButton (continued)

Page 52: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 52

JRadioButton (continued)

Page 53: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 53

JRadioButton (continued)

Page 54: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 55: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 55

Constructors of class JComboBox

Page 56: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 56

Applet with JCheckBox, JComboBox, and JRadioButton

Page 57: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 57

Constructors of class JList

Page 58: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 58

Constructors of class Jlist (continued)

Page 59: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 59

Constructors of class Jlist (continued)

Page 60: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 61: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 61

Layout Managers (continued)• 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 62: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 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

Page 63: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 63

Key and Mouse Events

Page 64: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 64

Chapter Summary

• Creating applets• class Font• class Graphics• class Color• Differences between applet and GUI

application

• Converting GUI application to applet

Page 65: Java Programming: From Problem Analysis to Program Design, 4e Chapter 12 Advanced GUIs and Graphics.

Java Programming: From Problem Analysis to Program Design, 4e 65

Chapter Summary (continued)

• GUI components– JTextArea– JCheckBox– JRadioButton

• Layout managers

• Menus

• Key and mouse events