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 に答える