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