Кажется, у вас неправильное представление о том, что вы делаете.
В этой строке:
font = new Font("Calibri", Font.ITALIC, 10);
Вы присваиваете ссылку на вновь созданный объект Font
переменнойfont
.
Затем, используя gr.setFont(font);
, вы передаете эту ссылку методу gr.setFont()
.Вы передаете только ссылку, то есть "положение" этого Font
объекта.Вы ничего не говорите gr.setFont()
о переменной font
, вы только сообщаете ей значение, хранящееся в ней.
В строке со второй по последнюю font = ...
вы присваиваете ссылку на еще однуновый Font
объект для переменной font
.Поскольку объект Graphics
не знает о самой переменной font
, это изменение (конечно) вообще не подвержено этому изменению!
Вы можете думать об этом так:
- Я пишу число на листе бумаги (скажем, число 3)
- Я показываю вам этот лист бумаги и прошу вас запомнить число
- Я стираюномер на бумаге и напишите на нем 5
- Я спрашиваю вас, какой номер вы запомнили