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 retruns 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):

 

 

Back to tutorial Next topic: Drop-down menus