2013-05-15 2 views
0

Я хочу принять нулевые значения, когда мой JSpinner пуст. Но он возвращает 0.0, когда я звоню getValue() функции.JSpinner получает нулевое значение

public JFormattedTextField getTextField(JSpinner spinner) { 
    JComponent editor = spinner.getEditor(); 
    if (editor instanceof JSpinner.DefaultEditor) { 
     return ((JSpinner.DefaultEditor)editor).getTextField(); 
    } else { 
     return null; 
    } 
} 

И это мой вызов метода:

Object a = getTextField(jValueNum).getValue(); 

Edit: или есть ли способ перегрузить функцию ПолучитьЗначение()?

ответ

1

Но он возвращает 0.0, когда я вызываю функцию getValue().

совершенно невозможно без грязного хака для JFormattedTextField с номером Formatter, есть значение по умолчанию любой номер от экземпляра Number

Я хочу принять нулевые значения, когда мой JSpinner пуст

return null (неверная идея, потому что номер должен использоваться для вычислений) в случае, если JSpinner возвращает double.valueOf (0,0)

Объект a = getTextField (jValueNum) .getValue();

JSpinner может сделать это, то нет причин, чтобы использовать полученный редактор для возвращения

2

@ user2279774: Set JSpinner с заданным пользователем значениями. Это будет только то, что я знаю .. например:

String[] colors = new String[] { 
       "Red", "Orange", "Yellow", "Green", "Blue"," ", "Purple" 
     }; 
     SpinnerListModel model = new SpinnerListModel(colors); 
0

Проверьте, какую модель спиннера вы установили. Возможно, вы установили SpinnerNumberModel. Попробуйте использовать SpinnerDataModel и установите все значение в строковом формате.

Он вернет редактор (JFormattedTextField), который настроен для объекта, и вы получите значение null в качестве значения. :)

+0

Мне нужна SpinnerNumberModel. Пользователь должен ввести номер. Но пользователь должен иметь возможность оставить его пустым для нулевого значения для переменных без значения. – user2279774

+0

[см. Hack] (http://stackoverflow.com/a/9366053/714968) для JFormattedTextField, примените этот код к компоненту редакторов JSpinnrs – mKorbel

+0

Не проблема ..., Примените Documentlistener или InputVerifier к редактору и принимайте только числовые данные от пользователя, но внутренне сохраняются в виде строки в модели spinner. :) –