• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 211
  • Last Modified:

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

Thanks in advance,

James
0
kickabury
Asked:
kickabury
  • 4
  • 3
  • 2
1 Solution
 
CEHJCommented:
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
 
objectsCommented:
> 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
 
CEHJCommented:
You don't need to cast - get the int value as you were doing already, as i quoted above
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

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

Number monday = mondaySpinnerModel.getNumber();
0
 
kickaburyAuthor 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
 
objectsCommented:


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
 
kickaburyAuthor 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
 
objectsCommented:
use a JLabel for that.
0
 
kickaburyAuthor 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.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 4
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now