Недавно Я спросил , какой компонент Swing был лучшим для привязки к переменной BigDecimal (с некоторыми конкретными свойствами редактирования). Оказывается, что ни один из стандартных компонентов Swing не подходит мне полностью, равно как и сторонние библиотеки компонентов Swing, которые я там обнаружил. Поэтому я решил создать свой собственный компонент Swing.
Описание компонента:
Я хочу расширить JTextField или JFormattedTextField , чтобы мой новый компонент можно было легко связать с переменной BigDecimal .
Компонент будет иметь настраиваемые свойства scale и length .
Поведение:
Когда компонент рисуется, он показывает только десятичную точку и пробел для масштаба цифр справа.
Когда компонент получает фокус, каретка должна быть расположена слева от десятичной точки. Поскольку пользователь вводит числа (любой другой символ игнорируется), они появляются слева от каретки, принимаются только длина - масштаб , любой другой набранный номер игнорируется как целое число часть заполнена Каждый раз, когда пользователь вводит десятичную точку, каретка перемещается в правую часть десятичной точки. Следующие набранные числа показаны в десятичной части, только масштаб числа считаются, любые другие введенные числа игнорируются, так как десятичная часть заполнена. Кроме того, тысячи разделителей должны отображаться как числа, вводимые пользователем с точностью до десятичной точки.
Я также хочу иметь возможность использовать компонент в качестве Редактора ячеек в JTable (без необходимости кодировать его дважды).
Вызов метода getValue () для компонента должен привести к значению BigDecimal, представляющему только что введенное число.
Я никогда не создавал свой собственный компонент Swing; Я едва использовал стандартные. Поэтому я был бы признателен за любой хороший учебник / информацию / совет по созданию описанного компонента. Это - единственное, что у меня есть.
Заранее спасибо.