#blackberry #richtext
#ежевика #richtext
Вопрос:
Я хотел бы изменить шрифт RichTextField, но я хочу изменить его после инициализации поля.
Возможно ли это?
Ответ №1:
Font font = Font.getDefault() ;
FontFamily ff;
try
{
ff = FontFamily.forName("arial");
font = ff.getFont(FontFamily.SCALABLE_FONT, 18).derive(Font.BOLD);
field.setFont(font);
}
catch(ClassNotFoundException e)
{
}
Комментарии:
1. Привет, сначала спасибо за ваш ответ, это не работает, на самом деле я создал ObjectChoiceField, и я хочу, чтобы пользователь выбрал размер шрифта, а затем применил его к RichTextField, то, что вы мне дали, работает только на ObjectChoiceField, мое richtextfield создается в другом классе, и я делаю его статичным
Ответ №2:
Если вы можете получить ссылку на RichTextField, вы можете вызвать setFont(Font font)
для него, а затем вызвать invalidate()
, чтобы заставить поле перерисовать себя. invalidate()
это защищенный метод, поэтому вам придется изменить свой класс RichTextField (расширить его), чтобы либо обновить setFon
t для автоматического вызова invalidate
, либо предоставить общедоступную версию invalidate
, которую вы можете вызывать.
Ответ №3:
другой способ…
try {
myFontFamily = FontFamily.forName("BBAlpha Serif");
Font appFont = myFontFamily.getFont(Font.PLAIN, 6, Ui.UNITS_pt);
field.setFont(appFont );
} catch (ClassNotFoundException e) {
e.printStackTrace();
}