java – 禁用JSpinner中的数字分组

我需要一个小部件来选择TCP / UDP端口,所以我写了以下内容
public static JSpinner makePortSpinner()
{
    final JSpinner spinner = new JSpinner(
            new SpinnerNumberModel( DefaultPort,1024,65535,1 ) );
    spinner.setFont( Monospaced );
    return spinner;
}

… Monospaced和DefaultPort是静态常量.

我想从结果显示删除数字分组字符.例如,认值55024显示为“55,024”,我希望它为“55024”.我知道直接的NumberFormat,就像我可以用jformattedtextfield一样,为了这个目的有一个setGroupingUsed(boolean)方法. JSpinner有什么样的吗?我应该将SpinnerNumberModel子类化吗?

解决方法

在您的微调框上设置数字编辑器的格式:
spinner.setEditor(new JSpinner.NumberEditor(spinner,"#"));

或更明确:

JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner);
editor.getFormat().setGroupingUsed(false);
spinner.setEditor(editor);

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...