Искам да взема нула стойности, когато ми JSpinner
празно е. Но се връща 0.0
когато се обадя getValue()
функция.
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();
Редактиране: или има някакъв начин да прехвърлите функцията getValue ()?
Отговори:
2 за отговор № 1@ user2279774: Задайте jSpinner с потребителски дефинирани стойности. Това ще бъде само начин, който знам ..
String[] colors = new String[] {
"Red", "Orange", "Yellow", "Green", "Blue"," ", "Purple"
};
SpinnerListModel model = new SpinnerListModel(colors);
1 за отговор № 2
Но той връща 0.0, когато се обадя getValue () функция.
съвсем не е възможно без мръсен хак за JFormattedTextField с числово форматиране, има стойност по подразбиране независимо от числото
Искам да взема нулеви стойности, когато jSpinner е празен
return null (грешна идея, защото номерът трябва да се използва за изчисления) в случай, че JSpinner връща double.valueOf (0.0)
Object a = getTextField (jValueNum) .getValue ();
JSpinner също може да направи това, няма причина да използва извлечения редактор за връщане
0 за отговор № 3
Проверете какъв модел въртящ се инструмент сте задали. Вероятно сте задали SpinnerNumberModel. Опитайте с SpinnerDataModel и задайте всички стойности в низ.
Ще се върне редактор (JFormattedTextField), който е конфигуриран за обект и ще получите null като стойност. :)