nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 16 Dec 2017 14:38



Reply to topic  [ 13 posts ] 
Java и шрифты 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos, что-то я тут замучался в TextField-ы моношириный шрифр выставлять... :-?

Прочитал в Инте всё что смог...
И так выставляю:
Code:
 Font TextFont = new Font("Courier New", Font.PLAIN, 12);
 text2.setFont(TextFont);

и так:
Code:
text2.setFont(new Font("Monospaced", Font.BOLD, 15));

Шрифт явно меняется, но моношириным не становится... :o

Хотя фактически повторяю пример:
https://way2java.com/awt-components/java-textfield-setting-properties/

В чем может быть проблема?

_________________
iLavr


02 Dec 2017 10:58
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15910
Location: Colorado
Reply with quote
По идее оно из системы должно браться - джава свои фонты вроде не тащит

_________________
:eugeek: https://twitter.com/Shaos1973


02 Dec 2017 11:04
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
По идее оно из системы должно браться

А поточнее "из системы" это как?

_________________
iLavr


02 Dec 2017 11:30
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15910
Location: Colorado
Reply with quote
Lavr wrote:
Shaos wrote:
По идее оно из системы должно браться

А поточнее "из системы" это как?

из винды :)
ставь фонт какой есть в винде

_________________
:eugeek: https://twitter.com/Shaos1973


02 Dec 2017 11:42
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
ставь фонт какой есть в винде

Так именно так и делаю! :o
Quote:
Font TextFont = new Font("Courier New", Font.PLAIN, 12);
text2.setFont(TextFont);

Courier и Courier New самые нативные виндовские моноширинные шрифты.
Attachment:
couriermono.gif
couriermono.gif [ 10.08 KiB | Viewed 87 times ]

_________________
iLavr


02 Dec 2017 11:54
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15910
Location: Colorado
Reply with quote
Попробуй Courier без New как тут: http://www.java2s.com/Tutorial/Java/0261__2D-Graphics/Usefontsinpaint.htm

_________________
:eugeek: https://twitter.com/Shaos1973


02 Dec 2017 12:14
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Смотри, какая фигня происходит: если рисуешь на канвасе, то шрифты и Courier и Courier New
там отлично печатаются.

А вот если меняешь фонт в TextField, то тут начинается какая-то заморочка...
Моноширинный шрифт не выставляется, хотя и Bold, Plain, и размер применяются.

_________________
iLavr


02 Dec 2017 12:56
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15910
Location: Colorado
Reply with quote
а ну в текстфилде они может и не приложаться - джава вроде системные контролы юзает в винде

_________________
:eugeek: https://twitter.com/Shaos1973


02 Dec 2017 13:17
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
джава вроде системные контролы юзает в винде
В общем ситуация дурацкая какая-то...
Джава правильно выставляет в свои TextField-ы те шрифты, что ей сказали:
Attachment:
NonMonospace1.gif
NonMonospace1.gif [ 5.37 KiB | Viewed 79 times ]
в данном случае: tf3.setFont(new Font("Courier New", Font.BOLD, 14));
И правильно считывает установленные шрифты.

А вот кто рисует для Джавы эти окна - JRE, или кто там еще, на эти шрифты плевать
хотел процентов так на 60... "оно" их не отрисовывает правильно.

Просмотрел другие Джава-приложения, где поиском находится Font("Courier"...
нигде он потом правильно не отображается.
Обидно вот так вот потратить день на полное гавно... :osad:

_________________
iLavr


02 Dec 2017 15:37
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
А вот кто рисует для Джавы эти окна - JRE, или кто там еще, на эти шрифты плевать
хотел процентов так на 60... "оно" их не отрисовывает правильно.

А это всё потому, оказывается, что у гнусной Джабы всё не так просто со шрифтами, как кажется.

Physical and Logical Fonts; Font Configuration Files; Adding Fonts to the Java Runtime

Не могу сказать, что я это всё прочитал и прозрел... :o
Но выставить моноширинный шрифт в ТехтФилд я Джаву всё-таки заставил!
Attachment:
FontMonospace.gif
FontMonospace.gif [ 5.52 KiB | Viewed 74 times ]

И как ни странно, это тот самый Курьер Нью, хотя Джава выполняет подмены
шрифтов из каких-то своих "высших кроссплатформенных" соображений... :-?
Если я этому шрифту скажу, что он - Болд, он тут же перестанет быть не
только моноширинным, но и Курьером Нью - тоже... :roll:

_________________
iLavr


02 Dec 2017 19:27
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15910
Location: Colorado
Reply with quote
Это жаба, которой давно надо бы сдохнуть ;)

_________________
:eugeek: https://twitter.com/Shaos1973


02 Dec 2017 20:57
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Но когда начинаешь на полудохлой Джабе писать, то есть в ней и некоторые приятные вещи.
Я сначала хотел написать конвертор с нуля как .ехе-файл на каком-нибуть язычишке высокого
уровня.
Но, взглянув в твой код, увидел, что труп Джабы многое упростит - преобразование числа по
произвольному основанию
.

Как это и бывает обычно - "прикупил шило за мыло", хотел сэкономить время и развлечься с
GUI-обликом приложения Джабы, а в итоге потерял день на шрифты Джаббы.

Ну да ладно, по пути много интересного узнал - в частности, почему у меня некоторы приложения
Джабы не запускались на компе автономно.
Тоже шаманство нафиг: оказывается последние символы в Манифесте Джабы должны быть:
0A, 0D, 0A, 0D - иначе Джаба с ошибкой читает последнюю строку Манифеста, а в ней как
раз указан Мейн Класс, и она его не находит. :o

Shaos, спасибо за помощь, отчекрыжь нашу беседу, пожалуй в Software, начиная с этого поста:
http://www.nedopc.org/forum/viewtopic.php?p=141431#p141431
Под названием Java и шрифты, чтобы не мешать здесь Троичному Конвертору, и чтобы
больше никто не спотыкался на шрифтах Джабы.

_________________
iLavr


03 Dec 2017 04:02
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15910
Location: Colorado
Reply with quote
отрезал

_________________
:eugeek: https://twitter.com/Shaos1973


03 Dec 2017 04:09
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 13 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.