Dialog Boxes
- A dialog box is a small graphical window that displays a message to the user or requests input.
- A variety of dialog boxes can be displayed using the JOptionPane class.
Two of the dialog boxes are:
- Message Dialog – a dialog box that displays a message.
- Input Dialog – a dialog box that prompts the user for input.
Using the import Statement
- The JOptionPane class is not automatically available to your Java programs.
- The following statement must be before the program’s class header:
import javax.swing.JOptionPane;
- This statement tells the compiler where to find the JOptionPane class.
Message Dialogs
- JOptionPane.showMessageDialog method is used to display a message dialog.
JOptionPane.showMessageDialog(null, "Hello World");
- The second argument is the message that is to be displayed
Input Dialogs
- An input dialog is a quick and simple way to ask the user to enter data.
- The dialog displays a text field, an Ok button and a Cancel button.
- If Ok is pressed, the dialog returns the user’s input.
- If Cancel is pressed, the dialog returns null.
String name; name = JOptionPane.showInputDialog("Enter your name.");
- The argument passed to the method is the message to display.
- If the user clicks on the OK button, name references the string entered by the user.
- If the user clicks on the Cancel button, name references null.
Example Program: Names Dialog program
import javax.swing.JOptionPane;
public class NamesDialog { public static void main(String[] args) { String firstName; // The user's first name String middleName; // The user's middle name String lastName; // The user's last name // Get the user's first name firstName = JOptionPane.showInputDialog("What is " + "your first name? "); // Get the user's middle name. middleName = JOptionPane.showInputDialog( "What is " + "your middle name? "); // Get the user's last name. lastName = JOptionPane.showInputDialog("What is " + "your last name? "); // Display a greeting JOptionPane.showMessageDialog(null, "Hello " + firstName + " " +middleName + " " + lastName); System.exit(0); } }
on CMD compile and run.
The System.exit() Method
- A program that uses JOptionPane does not automatically stop executing when the end of the main method is reached.
- Java generates a thread, which is a process running in the computer, when a JOptionPane is created.
- If the System.exit method is not called, this thread continues to execute.
- The System.exit method requires an integer argument.
System.exit(0);
- This argument is an exit code that is passed back to the operating system.
- This code is usually ignored, however, it can be used outside the program:
–to indicate whether the program ended successfully or as the result of a failure.
–The value 0 traditionally indicates that the program ended successfully.
Converting a String to a Number
- The JOptionPane’s showInputDialog method always returns the user’s input as a String
- String containing a number, such as “127.89, can be converted to a numeric data type.
The Parse Methods
- Parse methods convert strings to numeric data types
- They are:
–Byte.parseByte
–Integer.parseInt
–Short.parseShort
–Long.parseLong
–Float.parseFloat
–Double.parseDouble
- byte bVar = Byte.parseByte(“1”);
- int iVar = Integer.parseInt(“2599”);
- short sVar = Short.parseShort(“10”);
- long lVar = Long.parseLong(“15908”);
- float fVar = Float.parseFloat(“12.3”);
- double dVar = Double.parseDouble(“7945.6”);
Sample Program: Payroll Dialog
Coding:
import javax.swing.JOptionPane; public class PayrollDialog { public static void main(String[] args) { String inputString; // For reading input String name; // The user's name int hours; // The number of hours worked double payRate; // The user's hourly pay rate double grossPay; // The user's gross pay // Get the user's name. name = JOptionPane.showInputDialog("What is " + "your name? "); // Get the hours worked. inputString = JOptionPane.showInputDialog("How many hours" + "did you work this week?"); // Convert the input to an int. hours = Integer.parseInt(inputString); // Get the hourly pay rate. inputString = JOptionPane.showInputDialog("What is" + "your hourly payrate?"); // Convert the input to a double. payRate = Double.parseDouble(inputString); // Calculate the gross pay. grossPay = hours * payRate; // Display the results. JOptionPane.showMessageDialog(null, "Hello " + name + ". Your gross pay is $" + grossPay); // End the program. System.exit(0); } }
On CMD Compile & Run: