0

my が空のときに null 値を取得したい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 が空のときに null 値を取得したい

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 に答える