2012-04-29 11 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()); 
} 

의 코드의 작은 복사 붙여 넣기 당신은 내가 같이 궁금

+0

(예를 들어, 당신의 스피너 모델에 SpinnerDataModel로 캐스트 변경) 현재 설정에 맞게 코드를 조정해야합니다 SpinnerNumberModel을 사용하면 숫자가 더 좋을까요? 그렇다면 SpinnerDataModel과 어떻게 다른가? – Banned

+0

안녕하세요 로빈, 코드가 수정되었습니다. 제발 도와주세요 :) – Banned

+0

정확히 무슨 문제입니까? 모델을 직접 설정하면'SpinnerNumberModel'에 안전하게 캐스트 할 수 있습니다. – Robin