2012-04-29 10 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