Message Boxes

A message box can be used to announce a significant event, such as a user input error.  One place where this might occur is when the program attempts to get an input number from a numeric entry field.  If the user’s input text cannot be converted to a number, the getNumber method displays a 0 in the field and returns a 0.  A robust application can check for a bad number format by calling the isValidNumber method on the field. If this method returns false, the program can pop up a message box with an error message and allow the user to try again.  The messageBox method, which takes a string as an argument, can be run anywhere within the main window class. The next code segment shows the event handler from the temperature conversion program, updated to recover gracefully from number format errors.

    // Uses if/else statement to determine which button is clicked
    // Checks inputs for format errors
    public void buttonClicked(JButton buttonObj){
        double fahrenheit, celsius;
        if (buttonObj == fToCButton){
            if (! degreesFahrenheitField.isValidNumber()){
                messageBox("Error: bad number format in Fahrenheit field!");
                return;
            }
            fahrenheit = degreesFahrenheitField.getNumber();
            celsius = (fahrenheit  - 32) * 5.0 / 9.0;
            degreesCelsiusField.setNumber (celsius);
        }
        else {
            if (! degreesCelsiusField.isValidNumber()){
                messageBox("Error: bad number format in Celsius field!");
                return;
            }
            celsius = degreesCelsiusField.getNumber();
            fahrenheit = celsius * 9.0 / 5.0 + 32;
            degreesFahrenheitField.setNumber (fahrenheit);
        }           
    }

Here is a screen shot of the program’s main window and the message box resulting from an input error (an o was typed instead of a 0 in the Fahrenheit field):

© Ken Lambert. All rights reserved.