Title: Chapter 12: Advanced GUIs and Graphics
1Chapter 12 Advanced GUIs and Graphics
- Java Programming
- From Problem Analysis to Program Design,
- Fourth Edition
2Chapter 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.
3Inheritance Hierarchy of GUI Classes
4Constructors and Methods of the class Component
5Constructors and Methods of the class Component
6Constructors and Methods of the class Component
7Constructors and Methods of the class Component
8Applets
- 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.
9Applets
10Applets
11Applets
- 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.
12Applet Methods
- init method
- Initializes variables.
- Gets data from user.
- Places various GUI components.
- paint method
- Performs output.
13Skeleton of a Java Applet
import java.awt.Graphics import
javax.swing.JApplet public class WelcomeApplet
extends JApplet
14Applet Displaying Welcome Message
//Welcome Applet import java.awt.Graphics impor
t 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
15HTML to Run Applet
16class 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) .
17class Font
18class Color
- Shows text in different colors.
- Changes background color of component.
- Contained in package java.awt.
19class Color
20class Color
21class Color
22class 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.
23class Graphics
24Constructors and Methods for the class Graphics
25Constructors and Methods for the class Graphics
26Constructors and Methods for the class Graphics
27Constructors and Methods for the class Graphics
28Differences 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.
29Converting 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).
30Additional GUI Components
- JTextArea
- JCheckBox
- JRadioButton
- JComboBox
- JList
31JTextArea
- 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.
32JTextArea
33JTextArea
34JTextArea Example
35JCheckBox
- 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.
36JCheckBox
37Constructors and Methods of class JCheckBox
38Constructors and Methods of class JCheckBox
39JRadioButton
- 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.
40JRadioButton
41JRadioButton
42JComboBox
- 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.
43JComboBox
44JComboBox
45JList
46JList
47Layout 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.
48Layout 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.
49Menus
- 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.
50Keyboard and Mouse Events
51Chapter Summary
- Creating applets
- class Font
- class Graphics
- class Color
- Differences between applets and GUI applications
- Converting GUI applications to applets
52Chapter Summary
- GUI components
- JTextArea
- JCheckBox
- JRadioButton
- Layout managers
- Menus
- Keyboard and mouse events