![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| carper |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
Возникла маленькая проблема, мне бы хотелось узнать шрифт, которым выводится заголовок окна в Windows.
Я НЕ хочу использовать JFrame.setDefaultLookAndFeelDecorated(true); Мне НЕ нужен список всех системных шрифтов и путь к ним. Мне надо оставить стандартный заголовок, выводимый средствами OS. Мне НЕ надо ничего там менять, я просто хочу знать каким шрифтом он выводится! Нужно это только для переопределения pack(), чтобы, когда размер заголовка больше (по длине) чем размер компонентов, размещенных внутри JFrame, pack() учитывал эту возможность и не усекал заголовок. Никто не сталкивался с такой проблемой? |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
единственное но, не совпадают размеры с теми что указанны в свойствах системы. Так в системных свойствах у меня стоит размер шрифта 10, а Font имеет размер шрифта 13. Но если сделать:
то видно что шрифты одинаковые, а вот если уменьшить размер до 10 - то явно видно что шрифт меньше. P.S. Я это все тестировал под Windows XP. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| carper |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
Во-первых, большое спасибо, я хоть узнал, как это свойство называется! Во-вторых, размер шрифта, выдаваемого JAVA меняется в зависимости от DPI шрифта, установленного в системе, так для истинного размера заголовка в 9 пунктов в VISTA, из-под JAVA получаю 15 пунктов для large fonts (120DPI) и 12 пунктов для стандартных 96 DPI. Остается узнать, что JAVA считает "правильным" DPI :( Про инсеты и размер иконок в заголовке спрашивать боюсь, ну их, думаю тут в передах 15-24" мониторов, можно просто взять некую эмпирическую константу. |
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Какое DPI сейчас выставленно, можно узнать:
Вот только зачем? Все равно для определения размера надо использовать тот размер шрифта, что возвращает getFont(). Кстати кнопи там тоже вроде есть. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| carper |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
"Кстати кнопи там тоже вроде есть. "
Да, есть иконки (InternalFrame.minimizeIcon ...), беда в том, что суммарная длина строки заголовка, рассчитываемая по формуле:
Несколько меньше, чем надо. Скорее всего неверно считаю insets, т.к. совершенно непонятно почему это я пытаюсь использовать их для JFrame, хотя логичнее было бы искать их в тех же свойствах, что и сами иконки, но я такого свойства что-то не нашел. |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Получить размеры бордюра не проблема:
Основная проблема в иконке, если сделать так:
то все отлично, но вопрос в том как получить иконку, вернее ее размер (тут я взял стандартный размер для XP). Т.к. frame.getIconImage() возвращает оригинальную иконку, а не масштабированную под конкретную платформу. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| carper |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
Спасибо еще раз!
У меня, с учетом Ваших замечаний, вроде как все неплохо начало масштабироваться при добавлении icons.add(defaults.getIcon("InternalFrame.icon")); По крайней мере, при разумных размерах экрана и шрифтов (попробовал пока только на 17" и 21" мониторах под XP и Vista). Завтра попробую под виртуалкой под Linux. P.S. Правда все это только для "кофейной чашки", пользовательскую иконку добавлять пока не пробовал (=> frame.getIconImage() == null) |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |