Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD) class JButton Provided to create buttons in Java Used to create and modify JButton objects To create button Button may be labeled with a text string or an icon May register a listener object to process button click Declare reference variable of type JButton Instantiate object To add a text field to a container (display the label in the content pane) use the method add from the container class Methods Provided by the class JButton Methods Provided by the class JButton Handling an Event Action event: event created when JButton is clicked Event listener: object which receives message when JButton is clicked In Java, you must register the listener Specify button the listener object for a particular Handling an Event class ActionListener Handles action event Part of package java.awt.Event The class ActionListener is a special type of class (interface) Must contain actionPerformed method Rectangle Program: Sample Run Programming Example: Temperature Conversion Input: temperature in Fahrenheit or Centigrade Output: temperature in Centigrade if input is Fahrenheit; temperature in Fahrenheit if input is Centigrade Programming Example: Temperature Conversion Solution: Create the appropriate JLabels, JTextFields, JButtons Add them to the created content pane Calculate the appropriate conversions when the buttons are clicked and an event is triggered Sample Run for TempConversion Object-Oriented Design Simplified methodology 1. Write down detailed description of problem 2. Identify all (relevant) nouns and verbs 3. From list of nouns, select objects 4. Identify data components of each object 5. From list of verbs, select operations Object-Oriented Design Example: 1 Problem Statement Write a program to input the length and width of a rectangle and calculate and print the perimeter and area of the rectangle Select Nouns Length, width, rectangle, perimeter, area Identify Classes Length, width, perimeter and area are properties of a rectangle: Rectangle will be the class Object-Oriented Design Example: 2 Select essential attributes for the object of type Rectangle associated with the class Rectangle Length and width Perimeter and area are derived from length and width The data members of the class Rectangle are length and width Identify methods (operations) needed for the class Rectangle Extract the verbs from the problem statement Input, calculate, print List the required operations Object-Oriented Design Example: 2 Actions: Input, calculate, print List the required operations Input: setLength, setWidth Calculate: computePerimeter, computeArea Print: printArea, printPerimeter Access: getLength, getWidth class Rectangle with Data Members and Operations Object-Oriented Design: Example 1 Candy may be bought from a candy machine. A new candy machine is bought for the gym, but it is not working properly. The candy machine has four dispensers to hold and release items sold by the candy machine and a cash register. The machine sells four products —candies, chips, gum, and cookies—each stored in a separate dispenser. You have been asked to write a program for this candy machine so that it can be put into operation. Object-Oriented Design Example: 2 The program should do the following: Show the customer the different products sold by the candy machine. Let the customer make the selection. Show the customer the cost of the item selected. Accept money from the customer. Return change. Release the item, that is, make the sale. Object-Oriented Design Example: 3 Candy may be bought from a candy machine. A new candy machine is bought for the gym, but it is not working properly. The candy machine has four dispensers to hold and release items sold by the candy machine and a cash register. The candy machine sells four products —candies, chips, gum, and cookies— each stored in a separate dispenser. You have been asked to write a program for this candy machine so that it can be put into operation. Object-Oriented Design Example: 4 The program should do the following: Show the customer the different products sold by the candy machine. Let the customer make the selection. Show the customer the cost of the item selected. Accept money from the customer. Return change. Release the item, that is, make the sale. Object-Oriented Design Example 2 Identify Members of Each class Dispenser: must contain at least one item to and that items cost to make the sale Number of items Cost of item Cash Register: Cash Candy 4 on hand Machine: dispensers: name for item being held 1 cash register Object-Oriented Design: Example 5 Candy may be bought from a candy machine. A new candy machine is bought for the gym, but it is not working properly. The candy machine has four dispensers to hold and release items sold by the candy machine and a cash register. The machine sells four products —candies, chips, gum, and cookies—each stored in a separate dispenser. You have been asked to write a program for this candy machine so that it can be put into operation. Object-Oriented Design Example: 6 The program should do the following: Show the customer the different products sold by the candy machine. Let the customer make the selection. Show the customer the cost of the item selected. Accept money from the customer. Return change. Release the item, that is, make the sale. Object-Oriented Design Example 2 Implementing Classes and Operations Algorithms are used to implement operations Construct and implement your own methods classes Integer, Double, Character, Long, Float Known as wrapper classes Provided so that values of primitive data types can be treated as objects Have limitations (cannot change value stored in objects) The class IntClass The class IntClass Chapter Summary Every GUI contains a window Various components are added to content pane of window class Frame is used to create windows Label is used to label GUI components and display information to user Textile is used for input/output JButton generates action event Action event is sent to action listener Action listener must have method called actionPerformed Chapter Summary class: collection of data members and methods associated with those members Object-Oriented Design (OOD) Starts with a problem statement Identifies classes required with nouns in problem statement Identifies methods required with verbs in problem specification