Solved

Check TextField for null is throwing error

Posted on 2008-06-14
4
3,370 Views
Last Modified: 2012-05-05
Hey guys,

I was literally inches away from getting this working and I dont know where I've gone wrong...

I have made a simple java panel that is used for pounds and dollar conversion depending on rate. So I have a rate field, pound and dollar fields.
I want java to check for a field being empty, if so throw a JOptionPane alert. I got it to work at one point when the fields were default at 0, it was much easier to check a field for the presence of an integer at the time. What am I doing wrong?


Error: Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
        at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:994)

float pound, rate, result;
 

pound = Float.parseFloat(jTextField2.getText());

rate = Float.parseFloat(jTextField1.getText());
 
 

if (jTextField1.getText().equals("")){  // If the field is null, request the user to enter a number
 

    JOptionPane.showConfirmDialog((Component)

                null,  "Please enter a value for rate", "alert", JOptionPane.OK_CANCEL_OPTION);

}

else if (jTextField2.getText().equals("")){ // If the field is null, request the user to enter a number

       JOptionPane.showConfirmDialog((Component)

                null,  "Please enter a value for pounds", "alert", JOptionPane.OK_CANCEL_OPTION);

}

else

{

result = pound*rate;

jTextField3.setText(String.valueOf(result));

}

}

Open in new window

0
Comment
Question by:Arka3L
  • 3
4 Comments
 
LVL 23

Expert Comment

by:Ajay-Singh
Comment Utility
You should first validate the fields before convert it to float
0
 
LVL 23

Accepted Solution

by:
Ajay-Singh earned 500 total points
Comment Utility
This should work:
float pound, rate, result;

 

 

if (jTextField1.getText().equals("")){  // If the field is null, request the user to enter a number

 

    JOptionPane.showConfirmDialog((Component)

                null,  "Please enter a value for rate", "alert", JOptionPane.OK_CANCEL_OPTION);

}

else if (jTextField2.getText().equals("")){ // If the field is null, request the user to enter a number

       JOptionPane.showConfirmDialog((Component)

                null,  "Please enter a value for pounds", "alert", JOptionPane.OK_CANCEL_OPTION);

}

else

{

pound = Float.parseFloat(jTextField2.getText());

rate = Float.parseFloat(jTextField1.getText());

 

result = pound*rate;

jTextField3.setText(String.valueOf(result));

}

}

 
 

Open in New Window 

Open in new window

0
 
LVL 1

Author Comment

by:Arka3L
Comment Utility
Wow, I can't believe it was that simple -.-, I will award you the points, but can you explain to me the importance of doing this method? Before I did the check for the field being blank, my floats were above the first if statement and it worked fine. Now that I'm checking the field for being empty I have to add them at the end. I just need to learn a little more before I give the points away otherwise I wont learn :)

Thanks for the help Ajay!
0
 
LVL 23

Expert Comment

by:Ajay-Singh
Comment Utility
In the code you have, you parse the user input (by calling Float.parseFloat) first.  In the case of bad input its going to throw an exception. The validation can be done alongwith you are parsing the input:
 
float pound, rate, result;
boolean valid = true;
 
try {
   pound = Float.parseFloat(jTextField2.getText());
} catch(ParseFailedException e) {
  // Incorrect input
   valid = false;
   JOptionPane.showConfirmDialog((Component)
                null,  "Please enter a value for pounds", "alert", JOptionPane.OK_CANCEL_OPTION);
}
 
if(valid) {
// parse rate
try {
   rate = Float.parseFloat(jTextField1.getText());
} catch(ParseFailedException e) {
  valid = false;
  // Incorrect input
      JOptionPane.showConfirmDialog((Component)
                null,  "Please enter a value for rate", "alert", JOptionPane.OK_CANCEL_OPTION);
}
}
 
if(valid) {
result = pound*rate;
jTextField3.setText(String.valueOf(result));
}
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now