0

当我为空时,我想取空值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() 函数?

4

3 回答 3

2

@user2279774:使用用户定义的值设置 jSpinner。这将是我知道的唯一方式.. 例如:

String[] colors = new String[] {
                "Red", "Orange", "Yellow", "Green", "Blue","  ", "Purple"
        };
        SpinnerListModel model = new SpinnerListModel(colors);
于 2013-05-15T12:20:44.487 回答
1

但是当我调用 getValue() 函数时它返回 0.0。

如果没有对带有 Number Formatter 的 JFormattedTextField 的脏破解,这是不可能的,无论 Number 实例中的任何数字都有默认值

当我的 jSpinner 为空时,我想取空值

在 JSpinner 返回 double.valueOf(0.0) 的情况下返回 null (错误的想法,因为应该使用数字进行计算)

对象 a = getTextField(jValueNum).getValue();

JSpinner 也可以,没有理由使用派生编辑器返回

于 2013-05-15T12:20:32.163 回答
0

检查您设置的微调器型号。可能你已经设置了 SpinnerNumberModel。尝试使用 SpinnerDataModel 并以字符串格式设置所有值。

它将返回为对象配置的编辑器(JFormattedTextField),您将获得 null 作为值。:)

于 2013-05-15T12:26:26.400 回答