Chapter 13: Advanced GUIs and Graphics Java Programming: From Problem Analysis to Program Design, Second Edition 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. Java Programming: From Problem Analysis to Program Design, Second Edition 2 Inheritance Hierarchy of GUI Classes Java Programming: From Problem Analysis to Program Design, Second Edition 3 Constructors and Methods of the class Component Java Programming: From Problem Analysis to Program Design, Second Edition 4 Constructors and Methods of the class Component Java Programming: From Problem Analysis to Program Design, Second Edition 5 Constructors and Methods of the class Component Java Programming: From Problem Analysis to Program Design, Second Edition 6 Constructors and Methods of the class Component Java Programming: From Problem Analysis to Program Design, Second Edition 7 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. Java Programming: From Problem Analysis to Program Design, Second Edition 8 Applets Java Programming: From Problem Analysis to Program Design, Second Edition 9 Applets Java Programming: From Problem Analysis to Program Design, Second Edition 10 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. Java Programming: From Problem Analysis to Program Design, Second Edition 11 Applet Methods init method: Initializes variables. Gets data from user. Places various GUI components. paint method: Performs output. Java Programming: From Problem Analysis to Program Design, Second Edition 12 Skeleton of a Java Applet import java.awt.Graphics; import javax.swing.JApplet; public class WelcomeApplet extends JApplet { } Java Programming: From Problem Analysis to Program Design, Second Edition 13 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 } } Java Programming: From Problem Analysis to Program Design, Second Edition 14 HTML to Run Applet Java Programming: From Problem Analysis to Program Design, Second Edition 15 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) . Java Programming: From Problem Analysis to Program Design, Second Edition 16 class Font Java Programming: From Problem Analysis to Program Design, Second Edition 17 class Color Shows text in different colors. Changes background color of component. Contained in package java.awt. Java Programming: From Problem Analysis to Program Design, Second Edition 18 class Color Java Programming: From Problem Analysis to Program Design, Second Edition 19 class Color Java Programming: From Problem Analysis to Program Design, Second Edition 20 class Color Java Programming: From Problem Analysis to Program Design, Second Edition 21 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. Java Programming: From Problem Analysis to Program Design, Second Edition 22 class Graphics Java Programming: From Problem Analysis to Program Design, Second Edition 23 Constructors and Methods for the class Graphics Java Programming: From Problem Analysis to Program Design, Second Edition 24 Constructors and Methods for the class Graphics Java Programming: From Problem Analysis to Program Design, Second Edition 25 Constructors and Methods for the class Graphics Java Programming: From Problem Analysis to Program Design, Second Edition 26 Constructors and Methods for the class Graphics Java Programming: From Problem Analysis to Program Design, Second Edition 27 Differences Between Applets and GUI Applications Applets GUI applications Derived from JApplet. Class extends JFrame. No main method. Invokes main method. Uses init method. Uses constructors. Displayed by HTML. Uses method setVisible. Sets title in HTML. Uses setTitle method. Size set in HTML. Uses method setSize. Applet closes when HTML doc closes. Closes with Exit button. Java Programming: From Problem Analysis to Program Design, Second Edition 28 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). Java Programming: From Problem Analysis to Program Design, Second Edition 29 Additional GUI Components JTextArea JCheckBox JRadioButton JComboBox JList Java Programming: From Problem Analysis to Program Design, Second Edition 30 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. Java Programming: From Problem Analysis to Program Design, Second Edition 31 JTextArea Java Programming: From Problem Analysis to Program Design, Second Edition 32 JTextArea Java Programming: From Problem Analysis to Program Design, Second Edition 33 JTextArea Example Java Programming: From Problem Analysis to Program Design, Second Edition 34 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. Java Programming: From Problem Analysis to Program Design, Second Edition 35 JCheckBox Java Programming: From Problem Analysis to Program Design, Second Edition 36 Constructors and Methods of class JCheckBox Java Programming: From Problem Analysis to Program Design, Second Edition 37 Constructors and Methods of class JCheckBox Java Programming: From Problem Analysis to Program Design, Second Edition 38 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. Java Programming: From Problem Analysis to Program Design, Second Edition 39 JRadioButton Java Programming: From Problem Analysis to Program Design, Second Edition 40 JRadioButton Java Programming: From Problem Analysis to Program Design, Second Edition 41 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. Java Programming: From Problem Analysis to Program Design, Second Edition 42 JComboBox Java Programming: From Problem Analysis to Program Design, Second Edition 43 JComboBox Java Programming: From Problem Analysis to Program Design, Second Edition 44 JList Java Programming: From Problem Analysis to Program Design, Second Edition 45 JList Java Programming: From Problem Analysis to Program Design, Second Edition 46 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. Java Programming: From Problem Analysis to Program Design, Second Edition 47 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. Java Programming: From Problem Analysis to Program Design, Second Edition 48 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. Java Programming: From Problem Analysis to Program Design, Second Edition 49 Keyboard and Mouse Events Java Programming: From Problem Analysis to Program Design, Second Edition 50 Chapter Summary Creating applets class Font class Graphics class Color Differences between applets and GUI applications Converting GUI applications to applets Java Programming: From Problem Analysis to Program Design, Second Edition 51 Chapter Summary GUI components: JTextArea JCheckBox JRadioButton Layout managers Menus Keyboard and mouse events Java Programming: From Problem Analysis to Program Design, Second Edition 52