Я ищу способы увеличить приложение Java Swing. Это означает, что я хотел бы изменить размер всех компонентов в данной JPanel на определенный коэффициент, как если бы я сделал снимок экрана с пользовательского интерфейса и просто применил операцию «Масштаб изображения». Размер шрифта, а также размер флажков, текстовых полей, курсоров и т. Д. Должны быть скорректированы. можно масштабировать компонент путем применения превращается в графический объект:Увеличить приложение Java Swing
protected Graphics getComponentGraphics(Graphics g) {
Graphics2D g2d=(Graphics2D)g;
g2d.scale(2, 2);
return super.getComponentGraphics(g2d);
}
Это работает до тех пор, пока вы не заботитесь о компонентах самообновлению. Если у вас есть текстовое поле в вашем приложении, этот подход перестает работать, поскольку текстовое поле обновляется каждый раз, чтобы показать (мигающий) курсор. И поскольку на этот раз он не использует модифицированный графический объект, компонент появляется в прежнем месте. Есть ли возможность постоянно изменять компонент графического объекта? Также существует проблема с обработчиками событий щелчка мыши. Другой возможностью было бы изменить размер всех дочерних компонентов JPanel (setPreferredSize) до нового размера. Это не работает для флажков, так как отображаемое изображение флажка не меняет его размер. Я также думал о программировании моего собственного менеджера компоновки, но я не думаю, что это сработает, поскольку менеджеры макетов только меняют положение (и размер) объектов, но не могут масштабировать флажки (см. Предыдущий параграф). Или я ошибаюсь в этой гипотезе? Есть ли у вас идеи, как можно добиться масштабируемого графического интерфейса Swing без программирования пользовательских компонентов? Я искал вращающиеся пользовательские интерфейсы, потому что проблема кажется знакомой, но я также не нашел удовлетворительного решения этой проблемы.
Спасибо за вашу помощь, Chris
масштабирование уже отображенных компонентов, содержащих такие элементы, как сглаженные шрифты, даст потрясающие результаты, особенно если эти шрифты используют сглаживание RGB-прореживания/субпикселя. – NoozNooz42