1

私はこのようなものを持っていjSpinnerますSpinnerNumberModel

spinnerModelFix = new SpinnerNumberModel(0, 0, 65535, 1);
JSpinner fixedValueSpinner = new JSpinner(spinnerModelFix);

スピナーに整数を表示したいので、ユーザーが文字を挿入しても表示されません。

私はすべきだと思ったextends SpinnerNumberModelと方法...overridefireStateChanged()

しかし、その方法で何をする必要があるのか​​わかりません。

誰かが私にいくつかのヒントを与えることができますか?

4

2 に答える 2

3
  • はい、可能であり、回避策は非常に簡単です。

  • それを行うには2つの方法があります。派生するJTextFieldか、JFormattedTextFieldから派生する必要があります。JSpinner

  • 次に追加します

    a)DocumentListener

    b)DocumentFilter

DocumentFilterの使用は、コードの回避策として最も簡単で、より良く、おそらくより安全だと思います

于 2012-10-10T19:07:42.610 に答える
2

スピナーのフォーマッターでsetAllowsInvalid(false)を試すことができます。例えば:

SpinnerNumberModel spinnerModelFix = new SpinnerNumberModel(0, 0, 65535, 1);
JSpinner fixedValueSpinner = new JSpinner(spinnerModelFix);
JFormattedTextField textField = ((JSpinner.NumberEditor) fixedValueSpinner
        .getEditor()).getTextField();
((NumberFormatter) textField.getFormatter()).setAllowsInvalid(false);
于 2012-10-10T19:07:33.233 に答える