Java Swing позиционирует элементы по-разному в разных операционных системах - PullRequest
1 голос
/ 11 марта 2010

Я написал настольное приложение Java, которое работает в Windows, Mac OS X, Ubuntu и Open Suse. У меня проблемы с позиционированием по-другому в Linux.

Я разработал приложение с NetBeans с использованием конструктора, оно выглядит так, как я ожидал в Windows и Mac OS X, но в дистрибутивах Linux некоторые элементы управления метками сместились в разные позиции.

Есть ли общая причина для этого?

Ответы [ 4 ]

2 голосов
/ 11 марта 2010

Возможно, Linux использует другой шрифт. Тот, где буквы имеют разную ширину.

Вы можете попытаться явно установить определенный шрифт для вашего внешнего вида. Это должен быть шрифт, который установлен на всех ваших целевых платформах.

1 голос
/ 25 марта 2011

Самое вероятное, что вы используете разные взгляды и ощущения для каждой платформы. Если вы разрабатываете в Windows, вы делаете макеты, соответствующие только стилю Windows. Но у Linux разные L & F с разными полями и шрифтом для компонентов GUI. Металлический стиль (базовый для Linux) и его потомки (Nimbus и GTK +) имеют больший системный шрифт и высоту для компонентов. Я думаю, это должно быть причиной, почему у вас есть сдвиги.

Способ исправить это - проверить программу на обеих платформах. Я бы посоветовал разрабатывать в стиле Metal, потому что в Windows шрифты меньше, поэтому все, что подходит для Metal, подойдет для Windows.

0 голосов
/ 11 марта 2010

Я изменил стиль макета с «Свободный дизайн» на «Абсолют»

0 голосов
/ 11 марта 2010

Я предполагаю, что вы разработали эту штуку для Windows или Mac, поэтому она выглядит "как положено". Можете ли вы скомпилировать / запустить код в вашей IDE в Linux и посмотреть, как он выглядит?

Я предполагаю, что одна из реализаций контейнеров имеет недостатки. Я видел это иногда, когда я занимался кросс-разработкой и в основном делал модификации методом проб и ошибок, чтобы исправить это (переключаясь на использование других классов). Это также помогло одному разработчику работать в Windows, а другой в Linux, чтобы мы могли легко находить и исправлять проблемные области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...