Удалить неожиданную границу JTabbedPane - PullRequest
2 голосов
/ 18 февраля 2020

Я пытаюсь добавить вкладки в JTabbedPane. Это отображает ниже упомянутую белую границу, которую я не ожидаю здесь, поскольку Каждый цвет уже установлен на Черный, кроме белого цвета для цветов текста. Чего мне не хватает enter image description here Я пытаюсь изменить этот класс из проекта jitsi

Вот то, что я пробовал до сих пор.
ОС : Ubuntu 19.10: Java Версия: 1.8.0_242
Windows 10 Pro: Java Версия: 1.8.0_241
Я использую внешний вид по умолчанию для этого кадра, тогда как , для моего созданного вручную дизайна, это Nimbus .

1 Ответ

0 голосов
/ 20 февраля 2020

Ответ на вопрос в значительной степени зависит от стиля, который вы используете для своего приложения. Я не могу сказать, какой из них вы используете, просто посмотрев на скриншот, потому что вы сильно изменили его и не указали часть кода в своем вопросе, который его устанавливает. Если вы не устанавливаете какой-либо конкретный c one - вы запускаете стандартный стиль Look and Feel, который также может отличаться в зависимости от версий OS / JDK, если я не ошибаюсь.

Так как @ sleepToken уже сказано в комментарии - не публикуйте случайные части вашего кода или весь код, вместо этого публикуйте SSCCE . Хотя иногда вы можете подумать, что это не нужно и / или не связано - во многих случаях это не так, и это помогает тому, кто прочитает и попытается ответить на ваш вопрос, чтобы запустить код и отладить проблему, если необходимо.

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

Если ваше приложение использует MetalLookAndFeel - реализация будет MetalTabbedPaneUI. Из того, что я могу сказать, посмотрев на его код - он использует цвета из TabbedPane.highlight, TabbedPane.borderHightlightColor и TabbedPane.darkShadow UI по умолчанию для границы. Добавление пользовательского цвета для TabbedPane.highlight может решить эту проблему, поскольку вы не упомянули, что изменили его в своем вопросе.

Если этого не произойдет - я еще раз рекомендую опубликовать SSCCE вместе с вашим типом / версией ОС на тот случай, если вы используете собственный Look and Feel. Native Look and Feel различается в разных версиях JDK для разных версий ОС и часто использует настраиваемую реализацию пользовательского интерфейса, которая может быть не так настраиваемой.

...