Я использую следующий код,
UIManager.put("JFrame.activeTitleBackground", Color.red);
для изменения цвета панели инструментов в JFrame. Но это не сработало.
Можно ли изменить цвет заголовка в JFrame?
Я использую следующий код,
UIManager.put("JFrame.activeTitleBackground", Color.red);
для изменения цвета панели инструментов в JFrame. Но это не сработало.
Можно ли изменить цвет заголовка в JFrame?
Это невозможно. JFrame верхнего уровня управляется внешним видом базовой ОС.
Вы МОЖЕТЕ изменить цвет InternalFrame
.
user1781452
.
- person Enwired; 21.10.2016
UIDefaults
с ключом activeCaption
работает отлично.
- person Claude; 02.11.2018
Для Windows10 в вашем основном методе вы можете использовать:
UIDefaults uiDefaults = UIManager.getDefaults();
uiDefaults.put("activeCaption", new javax.swing.plaf.ColorUIResource(Color.gray));
uiDefaults.put("activeCaptionText", new javax.swing.plaf.ColorUIResource(Color.white));
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame.setDefaultLookAndFeelDecorated(true);
- person Roberto Tellez Ibarra; 26.04.2018
Я думаю, что цель состоит в том, чтобы добиться реального вида приложения на Win10. Поскольку изменить цвет заголовка окна на самом деле невозможно, единственный способ — настроить окно.
Хотя примеры установки варианта Metal LAF дают хороший пример, я обнаружил, что эта проблема сложнее. Настоящее окно Win10 должно иметь границу win10, прозрачную границу (тень), которую пользователь может перетаскивать для изменения размера. В заголовке должны использоваться значки Win10 и зависания для оконных кнопок.
Я бы f.setUndecorated(true); и нарисовать его самостоятельно, и установить вставки окна так, чтобы содержимое работало как обычно.
(Мелкий шрифт: хотя мы все «знаем», что Swing можно настроить с помощью LAF, в реальной жизни написание LAF всегда намного сложнее, чем просто создание подклассов и рисование собственного оформления. В качестве дополнительной проблемы архитектура LAF не выражают все свойства компонента, а «родной» LAF довольно далек от нативного внешнего вида (например, проверьте выпадающий список win7) или ощущения (выпадающие меню не выскальзывают, выпадающие меню win7 не имеют зависания, но кнопки есть). не говоря уже об отсутствии Windows-подобных компонентов, таких как приличная лента Office 2016 или даже простой «переключатель» Win10. Действительно, вы не можете сделать слишком много, не заваривая свои собственные компоненты.)
Я знаю, что немного опоздал, но это может помочь другим:
Я обыскал весь Интернет, чтобы найти способ изменить всю тему моего приложения на основе свинга. затем я нашел статью об этом:
Кто-то может сказать:
Это невозможно и контролируется ОС.
Если вы хотите получить доступ к строке заголовка, во-первых, у вас должен быть доступ к собственным библиотекам движка Java. К счастью, есть способ:
Первый шаг: JNA предоставляет Java-программам легкий доступ к родным общим библиотекам без написания чего-либо, кроме кода Java. Таким образом, вы можете использовать этот репозиторий для доступа к ним: JNA.
Scroll down to readme and find the downloadable library.
Некоторые элементы могут откладываться в зависимости от используемой вами платформы. Поэтому убедитесь, что вы используете jna-platform-5.8.0.jar
, чтобы ваше приложение было совместимо с любыми платформами.
Второй шаг: если вы не знаете, как использовать библиотеки JNA, вы можете использовать это в качестве примера: пример
в любом случае, это может решить вашу проблему с цветом строки заголовка;)
Основная статья: Внешняя ссылка
Help me improve my writing in English by telling me my mistakes :D