Интересно, я могу что-нибудь сделать?
к моим приложениям Swing ведут себя
то же самое в каждом компьютере?
Я работаю над сложным приложением Java Swing, которое поставляется в OS X / Windows / Linux, так что, как ответил Божидар, проблемы слишком реальны.
Для некоторых компонентов, если у вас есть некоторые навыки проектирования / программирования пользовательского интерфейса, вы можете просто написать свой собственный компонент : я понимаю, что это, вероятно, не полезный ответ, но он работает.
Например, нам нужен выпадающий список «поиск по типу» (например, тот, который появляется при запуске поиска на главной странице поиска Google), который будет выглядеть и работать в Linux / Windows / OS X. Попробовав бесчисленное количество «решений», полных специфических особенностей Swing, которые не будут работать везде (например, угадайте, что, проблемы с фокусом;), мы решили просто написать наш собственный компонент «с нуля».
Мы можем перехватывать события мыши и клавиатуры в обеих OS X / Windows / Linux: мы можем написать компонент, который не только выглядит , но также ведет себя одинаково на всех трех платформах.
В дополнение к «find-as-you-type» мы также написали наш собственный всплывающий компонент tooltip, двойной индикатор выполнения (для отображения индикатора в одном на одном, чтобы показать прогресс в стиле производителя / потребителя на одной панели) и сложный компонент, включающий в себя несколько «текстовых полей», которые были нелепо сложными и ломались, когда мы пытались сделать это с помощью Swing (и разбивались по-разному на разных платформах, например, странные проблемы с фокусировкой или отсутствие отображения каретки и т. д.). Поэтому мы «испортились» и сами переписали весь компонент.
Результат? Работая одинаково на всех платформах, где Java может давать вам уведомления о событиях мыши и клавиатуры ...
Я понимаю, что это, возможно, не то, что вы хотите услышать: я работал над пользовательским интерфейсом как для игр, так и для мобильных приложений в те времена, и у меня есть некоторые графические навыки, поэтому мне не сложно написать хорошо выглядящий Компоненты пользовательского интерфейса.
К сожалению, если вы хотите, чтобы какой-то компонент пользовательского интерфейса Java выглядел и вел себя одинаково на всех платформах, иногда это ваша единственная альтернатива ...