• Status: Solved
• Priority: Medium
• Security: Public
• Views: 214

# Spinner to Numaric Variable?

I have been working on a GUI Java program for a course I'm taking and I can't get a spinner to be treated as a numaric value so I can add it up and display it. I would ask my teacher, but he hardly speaks english and I usually come out more confused than when I started. So, please, please, please help be my teacher.

Here is the prob, I need the mondaySpinner and the tuesdaySpinner to add up and then average and display. I have left out the average, and the other days of the week, because I first wanted to see if I could get any number out of the spinners before going further. And, I know the code is really messy, but I get graded on whether it works, and the teacher doesn't look at the structure of the code.

Look at the Name.java file in this zip file: http://www.instantinfo.net/Name.zip

James
0
kickabury
• 4
• 3
• 2
1 Solution

Commented:
You were going in the right direction:

>>mondaySpinner.getNumber().intValue()

but i would make Name implement ChangeListener and add it as a listener to both spinners. Each time there's a change, calculate the total and increment the number of changes that have occurred. When you're ready

avg = total / numberOfChanges
0

Commented:
> Number monday = mondaySpinner.getValue();

u were close, just need to cast

Number monday = (Number) mondaySpinner.getValue();

then do the same with tuesday

Number tuesday= (Number) tuesdaySpinner.getValue();

and sum:

int sum = monday.intValue() + tuesday.intValue();

and average:

double average = (double) sum / 2.0;
0

Commented:
You don't need to cast - get the int value as you were doing already, as i quoted above
0

Commented:
alternatively if you don't want to cast keep a reference to the model and access it from there.

Number monday = mondaySpinnerModel.getNumber();
0

Author Commented:
Thanks for the quick responses. I couldn't get the mondaySpinner.getNumber().intValue() to compile without erroring. Not sure why, but Number monday = (Number) mondaySpinner.getValue(); works. I was able to make "monday" display, but I can't get the average to work and display.

Here is the new zip file: http://www.instantinfo.net/Name2.zip
0

Commented:

move that into your formatName method

protected String formatName() {
if (!NameSet) return "<<< Start.";

String firstname = firstnameField.getText();
String lastname = lastnameField.getText();
String Sex = (String)SexSpinner.getValue();
String idnumber = idnumberField.getText();
Number monday = (Number)mondaySpinner.getValue();
Number tuesday = (Number)tuesdaySpinner.getValue();
int total = monday.intValue() + tuesday.intValue();
double qAverage = (double)total / 2.0;
String empty = "";

if ((firstname == null) || empty.equals(firstname))
{
firstname = "<em>(no First Name specified)</em>";
}
if ((lastname == null) || empty.equals(lastname))
{
lastname = "<em>(no Last Name specified)</em>";
}

StringBuffer sb = new StringBuffer();
sb.append("<html><p align=left>");
sb.append(firstname);
sb.append(" ");
sb.append(lastname);
sb.append("<br><br>");
sb.append(idnumber);
sb.append("<br><br>");
sb.append(Sex);
sb.append("<br><br>");
sb.append(qAverage);
sb.append("<br><br>");

return sb.toString();
}
0

Author Commented:
Ahh. Nice. It works great. Thank you so much.

Before I close this out, one more quick question. I should probably add some simple directions like "Please enter the number of sales for each day of the week." I tried to add a JTextArea right above the mondaySpinner, it compiles, then spits out all kinds of crazy messages when I try to run it. Can I easily add a line of text, or should I leave good enough alone?

Thanks again.
0

Commented:
use a JLabel for that.
0

Author Commented:
I put the instructions in the righthand box. It looks and works great. Thanks a million.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.