如何从更改侦听器保存 JSninner 的值



我希望使用名为spinnerModel的值,但似乎不能这样做,我相信我必须将其声明为我不确定的某种类型。我想把它变成一个替身,因为它将在程序的后面使用。我有以下几点,

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
 public class UI  {
 //Need to use the spinnerModel here but cannot :(
private void weightSpinnerMetricStateChanged(ChangeEvent e) {
    JSpinner weightSpinnerMetric = (JSpinner) e.getSource();
    SpinnerModel spinnerModel = weightSpinnerMetric.getModel();
    System.out.println(spinnerModel.getValue());
}
    stonesSpinnerImperial = new JSpinner(); //Spinner created here.
stonesSpinnerImperial.setModel(new SpinnerNumberModel(3, 3, 31, 1));
            stonesSpinnerImperial.addChangeListener(new ChangeListener() {
                @Override
                public void stateChanged(ChangeEvent e) {
                    stonesSpinnerStateChanged(e);
                    stonesSpinnerImperialStateChanged(e);
                }
            });
}

应从微调器模型中检索值,而不是尝试保存事件。

这在关于微调器的 Swing 教程中都有解释。从该图里亚尔复制代码的小复制粘贴

public void stateChanged(ChangeEvent e) {
        SpinnerModel dateModel = dateSpinner.getModel();
        if (dateModel instanceof SpinnerDateModel) {
            setSeasonalColor(((SpinnerDateModel)dateModel).getDate());
}

当然,您需要调整此代码以匹配您当前的设置(例如,将铸件更改为SpinnerDataModel到您的微调器模型)

相关内容

  • 没有找到相关文章

最新更新