Отключение группировки цифр в JSpinner - PullRequest
9 голосов
/ 01 июня 2011

Мне нужен был виджет для выбора порта 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?

1 Ответ

15 голосов
/ 01 июня 2011

Установите формат редактора чисел на вашем счетчике:

spinner.setEditor(new JSpinner.NumberEditor(spinner,"#"));

или, чтобы быть более точным:

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