2012-04-29 22 views
1

私はspinnerModelという名前で作成した値を使用したいと思いますが、そうすることはできませんが、私は確信が持てない特定の型として宣言しなければならないと思います。私はそれをプログラムの後半で使用されるように二重にしたい。 私はそれが立つよう変更リスナーからjspinnerの値を保存する方法

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

答えて

1

あなたはスピナーモデルから値を取得する必要があり、以下、およびイベントを保存しようとしていません。

これはすべてSwing tutorial about spinnersで説明されています。私はと思っていたあなたの現在の設定を一致させるために、このコードを調整する必要があります。もちろん、そのturial

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

からのコードのペースト(例えば、あなたのスピナーモデルにSpinnerDataModelにキャストを変更)

+0

小さなコピーSpinnerNumberModelを使用していれば数値を使用しています。もしそうなら、あなたはそれをどのように使うのでしょうか、それともSpinnerDataModelと同じですか? – Banned

+0

ちょっとロビン、コードが編集されました。どうかお手伝いください:) – Banned

+0

正確にはまだ何か問題があります。自分でモデルを設定すると、 'SpinnerNumberModel'に安全にキャストすることができます – Robin

関連する問題