The issue I am running into is changing the SPinnerModel type into a double as it will be used later in the program. Also I cannot use weightSpinnerMetric outside of its method, but I am not sure on how to fix that.
Thanks once again guys.
import javax.swing.*;
import javax.swing.event.*;
public class UI {
private JSpinner weightSpinnerMetric;
//Need to change the weightSpinnerMetric to double and then use it here but cannot do either
private void weightSpinnerMetricStateChanged(ChangeEvent e) {
JSpinner weightSpinnerMetric = (JSpinner) e.getSource();
SpinnerModel spinnerModel = weightSpinnerMetric.getModel();
System.out.println(spinnerModel.getValue());
weightSpinnerMetric = new JSpinner(); //Spinner created here.
weightSpinnerMetric.setModel(new SpinnerNumberModel(3, 3, 31, 1));
weightSpinnerMetric.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
weightSpinnerMetricStateChanged(e);
weightSpinnerMetricStateChanged(e);
}
});
}}
As it stands, I wish to call the spinnermodel in another method(A button) so the spinnermodel value is called when the button is pressed, for a visual example I have the following: 
If the other method is in the same class UI, just call it?
As in:
And if you need it to be a double cast it with
(double).If the method is in another class, you should provide a none-private method in UI similar to this:
An alternative approch is to have a variable hold the current input weight, and update it in
weightSpinnerMetricStateChangedinstead ofSystem.out.println(spinnerModel.getValue())set that value to that variable.