Я делаю заказной компонент свинга и у меня возникла проблема. Я хочу простой текстовый дисплей (например, jlabel), который со временем меняет цвет. В настоящее время я расширил JPanel и переопределил paintComponent (Graphics), чтобы создать компонент, который может рисовать заданный текст и циклически изменять цвета, как требуется. Однако я не знаю, как заставить его всегда рисовать текст в центре компонента, или как заставить его рассчитывать свой собственный предпочтительный размер по умолчанию (поскольку я не знаю точных размеров текста), например, JLabel с установленным текстом автоматически возвращает правильное значение для getPreferredSize, и текст всегда аккуратно вписывается в метку, это функция, которую я хочу эмулировать. Кто-нибудь знает, как этого добиться?