вторник, 28 апреля 2015 г.

Java, Swing. How to change title text style of InternalFrame and width of minimized InternalFrame?

По воле случая пришлось вернуться к старому доброму SWING :)
Ну и тут началооось )))

Как поменять стиль текста у InternalFrame?
Очень просто. Если используем Look and Feel "Nimbus", то есть такая штука как переменные по-умолчанию. Весь их список можно найти здесь:
https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html

И так, нужно добавить в конструктор главного окна следующее:

Font f = new Font("SansSerif", Font.BOLD, 14); // создаем нужный нам текст, мне нужно было его увеличить до 14
 UIManager.put("InternalFrame.titleFont", f); // вставляем в переменные наш текст.

Вот и все.


Так же можно поменять цвет текста, используя переменную "InternalFrame:InternalFrameTitlePane[Enabled].textForeground"

Вот так:

UIManager.put("InternalFrame:InternalFrameTitlePane[Enabled].textForeground", Color.RED);

------

По-умолчанию, ширина свернутого окна, нашего InternalFrame, такова, что заголовок при сворачивании становится не виден. Решить проблему можно так же через переменные по-умолчанию. В данном случае это "InternalFrameTitlePane.contentMargins".
Нужно добавить:

java.awt.Insets insets = new Insets(5, 5, 0, 120);
UIManager.put("InternalFrameTitlePane.contentMargins", insets);

5 и 5 в Insets это отступ снизу и сверху, а 120 - получается здесь, что ширина.