Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Help to correct error

1 view
Skip to first unread message

bH

unread,
Aug 2, 2008, 6:23:06 PM8/2/08
to
Hi All,
On opening this program for the first time, I get these errors listed
below. After the data entry and button press I get no error. Using IE
lastest version Tools menu item click to get Sun Java Console to see
this error.

I would appreciate help to correct "on opening up error"

TIA,
bH
----------------------------------------------------

Exception in thread "AWT-EventQueue-2"
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at JustaTest.paint(JustaTest.java:33)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities
$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
program:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

//<applet code ="JustaTest.class" width=300 height=350></applet>

public class JustaTest extends JApplet implements ActionListener {
Label introLbl = new Label(" Show A Circle");
Label directionsLbl = new Label(" Enter #'s of Your Color and
Dimensions");
JTextField NumbrColorTxtFld = new JTextField(4); // input color
number
JTextField MeasDiaCircleTxtFld = new JTextField(4);
Label choiceNumbrSidesLbl = new Label("Enter a 1(red),2(green),
3(blue)");
Label measCircleLbl = new Label("Limit Entry to Measure > 0 and
<=150");
Label calculateButtnLbl = new Label( "Click Button to Show ");
JButton calculateButtn = new JButton("Paint It");

public void init() {
Container con = getContentPane();
con.setLayout(new FlowLayout());
add(introLbl);
add(directionsLbl);
add(choiceNumbrSidesLbl);
add(NumbrColorTxtFld);
add(measCircleLbl);
add(MeasDiaCircleTxtFld);
add(calculateButtnLbl);
calculateButtn.addActionListener(this);
add(calculateButtn);
}

public void paint(Graphics g) {
super.paint(g);
int colorNumber = Integer.parseInt(NumbrColorTxtFld.getText());
System.out.println("NumbrColor = "+ colorNumber);
int measureDia = Integer.parseInt(MeasDiaCircleTxtFld.getText());
if ((measureDia<1)||(measureDia>150)){
MeasDiaCircleTxtFld.setText("Oops!");
measureDia = 3;
}
System.out.println("measureDia = "+ measureDia);
switch (colorNumber){
case 1:
g.setColor(Color.red);
break;
case 2:
g.setColor(Color.green);
break;
case 3:
g.setColor(Color.blue);
}
g.drawOval(80,150,measureDia,measureDia);
g.fillOval(80,150,measureDia,measureDia);
}
public void actionPerformed(ActionEvent thisEvent) {
System.out.println("inside ActionEvent");
Object source = thisEvent.getSource();
if (source == calculateButtn){
}
repaint();
}
}

Lew

unread,
Aug 2, 2008, 6:30:51 PM8/2/08
to
bH wrote:
> Hi All,
> On opening this program for the first time, I get these errors listed
> below. After the data entry and button press I get no error. Using IE
> lastest version Tools menu item click to get Sun Java Console to see
> this error.
>
> I would appreciate help to correct "on opening up error"

The error is telling you that the input in NumbrColorTxtFld (needs a better
name) or MeasDiaCircleTxtFld (needs a better name), whichever is being parsed
on line 33, is "", which does not parse to a number.

It seems that you have completely failed to do any checking on inputs to see
if they are legal.

--
Lew

Knute Johnson

unread,
Aug 2, 2008, 6:41:06 PM8/2/08
to
JTextField NumbrColorTxtFld = new JTextField("0",4);

> JTextField MeasDiaCircleTxtFld = new JTextField(4);
> Label choiceNumbrSidesLbl = new Label("Enter a 1(red),2(green),
> 3(blue)");
> Label measCircleLbl = new Label("Limit Entry to Measure > 0 and
> <=150");
> Label calculateButtnLbl = new Label( "Click Button to Show ");
> JButton calculateButtn = new JButton("Paint It");
>
> public void init() {
> Container con = getContentPane();
> con.setLayout(new FlowLayout());
> add(introLbl);
> add(directionsLbl);
> add(choiceNumbrSidesLbl);
> add(NumbrColorTxtFld);
> add(measCircleLbl);
> add(MeasDiaCircleTxtFld);
> add(calculateButtnLbl);
> calculateButtn.addActionListener(this);
> add(calculateButtn);
> }
>
> public void paint(Graphics g) {
> super.paint(g);
>// int colorNumber = Integer.parseInt(NumbrColorTxtFld.getText());
int colorNumber;
try {
colorNumber = Integer.parseInt(NumberColorTxtFld.getText());
} catch (NumberFormatException nfe) {
System.out.println("bad number in NumberColorTxtFld");
colorNumber = 0;

}
> System.out.println("NumbrColor = "+ colorNumber);
> int measureDia = Integer.parseInt(MeasDiaCircleTxtFld.getText());
> if ((measureDia<1)||(measureDia>150)){
> MeasDiaCircleTxtFld.setText("Oops!");
> measureDia = 3;
> }
> System.out.println("measureDia = "+ measureDia);
> switch (colorNumber){
> case 1:
> g.setColor(Color.red);
> break;
> case 2:
> g.setColor(Color.green);
> break;
> case 3:
> g.setColor(Color.blue);
> }
> g.drawOval(80,150,measureDia,measureDia);
> g.fillOval(80,150,measureDia,measureDia);
> }
> public void actionPerformed(ActionEvent thisEvent) {
> System.out.println("inside ActionEvent");
> Object source = thisEvent.getSource();
> if (source == calculateButtn){
> }
> repaint();
> }
> }

paint() is called when an Applet or application is being drawn the first
time. You are throwing an exception because there is no data in the
NumbrColorTxtFld the first time the applet is drawn. Just catch the
exception or put some value in the NumbrColorTxtFld when you create it.

See your code above.

--

Knute Johnson
email s/nospam/knute2008/

--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access

bH

unread,
Aug 2, 2008, 7:17:21 PM8/2/08
to
On Aug 2, 6:41 pm, Knute Johnson <nos...@rabbitbrush.frazmtn.com>
wrote:
> Unlimited Access, Anonymous Accounts, Uncensored Broadband Access- Hide quoted text -
>
> - Show quoted text -- Hide quoted text -
>
> - Show quoted text -- Hide quoted text -
>
> - Show quoted text -

as a reply to Lew,
Thanks for responding.

Translate please "needs a better name"?
Do you mean fewer letters?

As for "checking on inputs to see if they are legal" ?
Textfields are accessable to input alphanumeric, and if I parse in a
run it shows no error if it is an integer.

This is error reported is right at the moment of opening it in IE.
Then in reality, I have to insert a "0" or "0" in both of these
TextFeilds before running the program.

It does not error in the initial opening, if in the "init" these lines
are added.
1. NumbrColorTxtFld.setText("0");
2. MeasDiaCircleTxtFld.setText("0");
And in the "paint " this line is revised to accept the revision
3 if ((measureDia<0)||(measureDia>150)){
......
What is still disturbing is that the opening the textfields cannot be
blank to
begin with.

as a reply to Knute,
Thanks for stopping by.

For me it errors with this
JTextField NumbrColorTxtFld = new JTextField(4,"0"); // input color
number
JTextField MeasDiaCircleTxtFld = new JTextField(4,"0");

it shows the same for both lines above:

File: C:\Documents and Settings\bH\Desktop\JustaTest.java [line: 10]
Error: cannot find symbol
symbol : constructor JTextField(int,java.lang.String)
location: class javax.swing.JTextField
File: C:\Documents and Settings\bH\Desktop\JustaTest.java [line: 10]
Error: internal error; cannot instantiate
javax.swing.JTextField.<init> at javax.swing.JTextField to ()

bH


Lew

unread,
Aug 2, 2008, 8:15:17 PM8/2/08
to
bH wrote:
> as a reply to Lew,
> Thanks for responding.
>
> Translate please "needs a better name"?
> Do you mean fewer letters?

More letters, instead of abbreviations.

> As for "checking on inputs to see if they are legal" ?
> Textfields are accessable to input alphanumeric, and if I parse in a
> run it shows no error if it is an integer.
>
> This is error reported is right at the moment of opening it in IE.
> Then in reality, I have to insert a "0" or "0" in both of these
> TextFeilds before running the program.

Or follow Knute's suggestion of catching the exception. You put absolutely no
checks on the parseInt(), then were mystified when it failed.

> It does not error in the initial opening, if in the "init" these lines
> are added.
> 1. NumbrColorTxtFld.setText("0");
> 2. MeasDiaCircleTxtFld.setText("0");

Well, duh.

> And in the "paint " this line is revised to accept the revision
> 3 if ((measureDia<0)||(measureDia>150)){
> ......
> What is still disturbing is that the opening the textfields cannot be
> blank to
> begin with.

Of course they can.

--
Lew

bH

unread,
Aug 2, 2008, 9:19:26 PM8/2/08
to

Hi Lew,

given:


> > What is still disturbing is that the opening the textfields cannot be
> > blank to
> > begin with.
>
> Of course they can.

I ask for an answer to the copied above "blank textfields to begin
with" asking you to show me what it should look like. I have no clue
at this point.


TIA
bH

Lew

unread,
Aug 2, 2008, 9:40:40 PM8/2/08
to
bH wrote:
> I ask for an answer to the copied above "blank textfields to begin
> with" asking you to show me what it should look like. I have no clue
> at this point.

Take a look at Knute Johnson's answer to your question. He showed how to do it.

Is his answer visible to you? If not, I will quote it again.

--
Lew

bH

unread,
Aug 2, 2008, 10:27:05 PM8/2/08
to

Hi Lew,
Thanks for your reply,
Knute's earlier reply is visible and is being used. It works
perfectly.


bH

0 new messages