在JSpinner中禁用数字分组

Ken*_*len 9 java user-interface swing jspinner number-formatting

我需要一个小部件来选择TCP/UDP端口,所以我写了以下内容:

public static JSpinner makePortSpinner()
{
    final JSpinner spinner = new JSpinner(
            new SpinnerNumberModel( DefaultPort, 1024, 65535, 1 ) );
    spinner.setFont( Monospaced );
    return spinner;
}
Run Code Online (Sandbox Code Playgroud)

...... Monospaced并且DefaultPort是静态常量.

我想从结果显示中删除数字分组字符.例如,默认值55024显示为"5524",我希望它为"55024".我知道NumberFormat,正如我可能使用的那样JFormattedTextField,有一个setGroupingUsed(boolean)方法可以达到这个目的.有这样的东西JSpinner吗?我应该继承SpinnerNumberModel吗?

dog*_*ane 16

在微调器上设置数字编辑器的格式:

spinner.setEditor(new JSpinner.NumberEditor(spinner,"#"));
Run Code Online (Sandbox Code Playgroud)

或者更明确:

JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner);
editor.getFormat().setGroupingUsed(false);
spinner.setEditor(editor);
Run Code Online (Sandbox Code Playgroud)