我需要一个小部件来选择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);