Основная проблема заключается в сложности, связанные в попытке сделать определение об отдельных платформах в отношении таких вещей, как шрифты и как пиксели могут быть оказаны
Даже две системы, под управлением той же ОС может генерировать различные результаты из-за разные аппаратные драйверы и конвейеры рендеринга.
Значительная часть API была абстрагирована таким образом, что вам все равно, что один компьютер использует DPI 120 и использует DirectX, а другой использует DPI 92 и использует OpenGL.
Менеджеры макетов удаляют разработчика из обязанности вычислить размер компонента (и его дочерних компонентов) в определенный момент времени, а также рассчитать взаимосвязь между этими компонентами и сделать это стандартизованным способом.
Ядро Swing API было разработано для использования этого API, поэтому, когда компонент каким-то образом изменится, что будет представлять собой изменение размера, все необходимые контейнеры будут уведомлены автоматически, а вся иерархия компонентов может быть скорректирована как обязательный.
Основная идея диспетчера компоновки - описать связь между компонентами в одном и том же контейнере, а также предоставить информацию о том, сколько может понравиться этот контейнер. Это позволяет вам сосредоточиться на пользовательских возможностях пользовательского интерфейса, а не пытаться потратить время на обновление пользовательского интерфейса, чтобы удовлетворить все возможные комбинации аппаратного и программного обеспечения.
Как бывший разработчик VB (нет, я не горжусь этим), могу вас заверить, самая неприятная часть работы с ним заключалась в разработке полезных динамических пользовательских интерфейсов, которые не выглядели дерьмо на следующий клиент машины.
Из всех аспектов свинга, то управление компоновкой является одним из наиболее приветствуется - ИМХО
upvotd для "Bonjour" – Coffee
Yup, заметил это тоже после того, как я указал на него комментарием. Никогда не появлялся в любых поисках, которые я делал до вопроса, который ... раздражает. – MMJZ