将spinnermodel更改为double值,以便稍后在change change事件之外使用

时间:2012-04-29 23:34:18

标签: java eclipse swing user-interface jform-designer

我遇到的问题是将SPinnerModel类型更改为double,因为稍后将在程序中使用它。另外我不能在其方法之外使用weightSpinnerMetric,但我不确定如何修复它。

再次感谢你们。

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);
            }
        });
}}

就目前而言,我希望在另一个方法(A按钮)中调用spinnermodel,以便在按下按钮时调用spinnermodel值,对于一个可视示例,我有以下内容:enter image description here

1 个答案:

答案 0 :(得分:3)

如果另一个方法在同一个类UI中,只需调用它? 如:

weightSpinnerMetric.getModel().getValue();

如果你需要它与(double)进行双重演绎。

如果方法在另一个类中,则应在UI中提供类似于此的非私有方法:

public double getCurrentWeight() {
    return (double) weightSpinnerMetric.getModel().getVale();
}

另一种方法是让一个变量保持当前的输入权重,并在weightSpinnerMetricStateChanged中更新它,而不是System.out.println(spinnerModel.getValue())将该值设置为该变量。