0

我遇到的问题是将 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 值,对于一个视觉示例,我有以下内容:在此处输入图像描述

4

1 回答 1

3

如果其他方法在同一个类 UI 中,就调用它?如:

weightSpinnerMetric.getModel().getValue();

如果您需要将其与(double).

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

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

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

于 2012-04-30T00:24:41.163 回答