Когда я должен написать свой собственный Look and Feel для Java Swing вместо того, чтобы настраивать его? - PullRequest
2 голосов
/ 25 апреля 2010

Я использовал несколько разных видов внешнего вида для Java Swing, но на самом деле я никому не нравлюсь на 100%, поэтому я часто заканчиваю его настройкой. Иногда я думаю о том, лучше ли написать свой собственный LaF (за счет расширения существующего), но я не совсем знаю.

На данный момент я в основном использую Nimbus , но я меняю все цвета (на более темные) и переписываю внешний вид некоторых компонентов, таких как ползунки и полосы прокрутки. Я также в основном настраиваю все таблицы и собираюсь изменить внешний вид некоторых других компонентов.

Когда рекомендуется создавать новый внешний вид, а не настраивать его? Какие плюсы и минусы?

т.е. настроить Nimbus или создать новый, расширив Nimbus?

Статья по теме: Создание индивидуального оформления (старая версия)

Ответы [ 3 ]

6 голосов
/ 25 апреля 2010

Когда рекомендуется создавать новый внешний вид вместо того, чтобы настраивать его?

  • Когда вы хотите, чтобы ваше приложение выглядело практически одинаково на всех основных платформах
  • Когда вы хотите избавиться от «мертвых раздач», когда ваше приложение представляет собой приложение Java (что беспокоит некоторых программистов, продающих коммерческое программное обеспечение для пользователей OS X, где у Java ужасно плохая репутация среди пользователей [оно незаслуженно) , но это факт]).

Вот пример болезни, которую вы должны пройти, чтобы хоть немного улучшить жалкую JTable (кстати, автор этого блога позже был нанят Apple):

http://explodingpixels.wordpress.com/2009/05/18/creating-a-better-jtable/

Какие плюсы?

Можно сделать приложение почти идентичным (единственное отличие - рендеринг шрифтов, который немного варьируется от OS X к Linux для Windows ... но его можно сделать довольно близким, или вы можете пойти с «не AA» пиксельные шрифты, которые будут выглядеть совершенно одинаково).

и минусы?

  • Ваше приложение вообще не будет иметь родного вида.
  • Это большая работа (качание не совсем легкое: это какой-то чрезмерно сложный, слишком сложный зверь, и очень трудно определить, «невероятно умно ли он» или «невероятно глупо»).

Я написал несколько пользовательских компонентов Swing, выглядящих точно одинаковыми в Windows, Linux и OS X (с использованием идеальных по пикселям шрифтов), но я бы не стал писать весь LnF.

0 голосов
/ 10 марта 2011

Написание Java-внешнего вида не для слабонервных. Само по себе это стремление, поэтому я бы сказал, что, возможно, более эффективно найти уже существующий внешний вид, соответствующий вашим потребностям.

Кэтрин Хакстейбл работала над реализацией Sea Glass Look and Feel , что было довольно непросто. Он основан на Nimbus, хотя Nimbus и его основы Swing далеко не так расширяемы, как это требуется для создания индивидуального внешнего вида. Это означает, что большая часть кода должна быть скопирована и вставлена ​​в подклассы. Вы, вероятно, не хотите отвлекаться на подобные вещи при работе над другим проектом.

Synthetica - это еще один ранее существовавший вариант, который, я считаю, вполне поддаётся обработке.

0 голосов
/ 25 апреля 2010

Я не думаю, что есть какие-либо ответы на этот вопрос, кроме общих слов, таких как:

  • , когда усилие по применению изменений к существующему внешнему виду больше, чем создание нового, или

  • , если вы хотите создать новый внешний вид по нетехническим причинам.

...