Межплатформенный интерфейс / отступ - PullRequest
2 голосов
/ 13 июня 2011

Я написал пользовательский интерфейс Java, используя библиотеку пользовательского интерфейса SWT и библиотеку макетов MigLayout.

На этой странице показаны скриншоты пользовательского интерфейса в Windows, Linux и OSX: http://mchr3k.github.com/org.intrace/screenshots.html

В Linux и OSX мой пользовательский интерфейс имеет намного больше отступов и пробелов, которые, по моему мнению, тратят много экранапространство.Это нормально для этих платформ?Если нет, каков наилучший способ обойти это?

РЕДАКТИРОВАТЬ: связанные скриншоты теперь обновлены и больше не показывают дополнительный пробел в OSX, поскольку я явно установил поля для некоторых из моих элементов пользовательского интерфейсана 0. Интерфейс OSX все еще достаточно разнесен, но я предполагаю, что это правильно для платформы.

Ответы [ 2 ]

16 голосов
/ 13 июня 2011

Это Микаэль Грев, создатель MigLayout.

Как уже упоминал кто-то, это особенность MigLayout.Вместо того, чтобы использовать x количество пикселей (вы, конечно, можете использовать это тоже) по умолчанию, оно использует пробелы, такие как related, unrelated и абзац.Они соответствуют разным размерам в различных инструментах пользовательского интерфейса.Например, в OS X рекомендуемый пробел между компонентами больше, чем в Windows.

Итак, да, именно так он и должен выглядеть, и он будет выглядеть корректно для собственного пользователя OS X.

Кажется, у вас слишком много пустого пространства в нижней части панели «Вывод», как в OS X, так и в Windows.

Вы можете использовать класс PlatformDefaults в MigLayout для принудительного запуска платформы или изменения платформы.пробелы по умолчанию.Проверьте исходный код, если хотите знать, что происходит за кулисами.

И помните, что эта функция позволяет каждому разработчику не следить за тем, как интервалы должны выглядеть на разных платформах,это довольно сложно.

Приветствия, Микаэль

1 голос
/ 13 июня 2011

Это на самом деле особенность MigLayout, если я правильно помню.Если вы не хотите этого, я уверен, что вы можете настроить MigLayout.В противном случае вы могли бы использовать другой менеджер компоновки (но я все же настоятельно рекомендую основанный на таблицах), который использует постоянный интервал для всех платформ (например, мой MatrixLayout ).

...