Transcript Chapter 1

Chapter 13
Advanced GUIs and Graphics
Chapter Objectives
•
•
•
•
Learn about applets
Explore the class Graphics
Learn about the class Font
Explore the class Color
Chapter Objectives
• 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
Inheritance Hierarchy of GUI Classes
Constructors and Methods of the
class Component
Constructors and Methods of the
class Component
Constructors and Methods of the
class Component
Constructors and Methods of the
class Container
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
Members of class JApplet
Members of class JApplet
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
Applet Methods
• init Method
– Initializes variables
– Gets data from user
– Places various GUI components
• paint Method
– Performs output
Skeleton of a Java Applet
import java.awt.Graphics;
import javax.swing.JApplet;
public class WelcomeApplet extends JApplet
{
}
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
}
}
HTML to Run Applet
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)
Constructors and Methods of the
class Font
class Color
• Shows text in different colors
• Changes background color of component
• Contained in package java.awt
Constructors of the class Color
Methods of the class Color
Methods of the class Color
Constants Defined in the class
Color
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
Constructors and Methods of the
class Graphics
Constructors and Methods for the
class Graphics
Constructors and Methods for the
class Graphics
Constructors and Methods for the
class Graphics
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
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)
Additional GUI Components
•
•
•
•
•
JTextArea
JCheckBox
JRadioButton
JComboBox
JList
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
Constructors and Methods of
class JTextArea
Methods Inherited by class
JTextArea from Parent class
JTextComponent
JTextArea Example
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
Constructors and Methods of
class JCheckBox
Constructors and Methods of
class JCheckBox
Constructors and Methods of class
JCheckBox
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
Constructors and Methods of
class JRadioButton
Constructors and Methods of
class JRadioButton
Constructors and Methods of class
JRadioButton
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
Constructors of class
JComboBox
Applet with JCheckBox,
JComboBox, and JRadioButton
Constructors of class JList
Methods of class JList
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
Layout Managers
• 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
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
Key and Mouse Events
Chapter Summary
•
•
•
•
•
Creating Applets
class Font
class Graphics
class Color
Differences Between Applet and GUI
Application
• Converting GUI Application to Applet
Chapter Summary
• GUI Components
– JTextArea
– JCheckBox
– JRadioButton
• Layout Managers
• Menus
• Key and Mouse Events