У меня есть несколько различных компонентов в очень большом приложении JavaEE. Таким образом, отладка - это боль, и, к сожалению, я не могу предоставить SSCCE, который точно описывает проблему, с которой я столкнулся.
Короче говоря, мои шрифты каким-то образом меняются сами по себе для таких вещей, как JLabels
и JTabbedPanes
. Даже не касаясь их, они перекрашиваются жирным шрифтом, выделяются курсивом, резко изменяются в размере или любой их комбинацией.
Простой вопрос: почему?
Если я прохожу через отладчик Eclipse, никаких изменений не происходит. Так что время как-то влияет.
Я все еще кузнечик Java (работаю один) и не построил эту программу таким образом, чтобы EDT был священным объектом. Меня беспокоит то, что, поскольку я потенциально не делаю все вызовы repaint()
в EDT, JTabbedPane, JLabel и другие свойства шрифта сбрасываются и перерисовываются.
РЕДАКТИРОВАТЬ:
Забыл сказать, что я ограничен Java 1.5.
Я думаю, что сузил его до проблемы с использованием HTML в заголовках вкладок JLabels и JTabbedPane ... но дальше этого я понятия не имею. Что касается JTabbedPane, он входит в методы рисования с правильными объектами Font
/FontMetrics
, но по какой-то причине очень редко (иногда чаще; еще не разобрался с триггером времени) переключает шрифт, стиль, и даже размер, при котором он рисует текст.
repaint()
вне EDT, и, если мне не изменяет память, этот факт задокументирован для этого метода. Для меня это не пахнет проблемой EDT, поскольку они обычно вызывают гораздо более серьезные проблемы, такие как зависание или смерть вашей программы. Похоже, вы находитесь на стадии обнаружения отладки, когда вы должны сначала найти свою проблему, и поэтому я не уверен, что вы уже находитесь на этапе, когда мы можем вам помочь. Продолжайте пытаться разделять и властвовать, чтобы попытаться изолировать проблему (если только кто-то умнее меня не предложит вам решение — я искренне надеюсь, что это произойдет!). - person Hovercraft Full Of Eels   schedule 10.03.2012Font
своих компонентов? - person Jeffrey   schedule 10.03.2012setUI()
, иногда ошибочно используемые вместоrepaint()
, et al. - person trashgod   schedule 10.03.2012OfficeLnF
Look and Feels, и он устанавливается прямо перед запуском основной программы. Я меняюFont
компонентов, но только один раз, когда они инициализируются. Кроме того, я не использую Mac; не уверены, что случайные JAR-файлы все еще существуют и выпускаются? - person BenCole   schedule 10.03.2012OfficeLnF
. - person trashgod   schedule 10.03.2012