Мне было интересно, есть ли способ расширить класс Font таким образом, чтобы я мог вернуть свой собственный класс Font с помощью методов createFont и производныхFont. Я имею в виду что-то вроде этого...
public class MyFont extends Font {
// Constructor
public MyFont (...) {
super(...);
}
// createFont method
public static MyFont createFont (...) {
// body
}
// deriveFont method
public static MyFont deriveFont (...) {
// body
}
}
Я пытался, но не смог получить какой-либо шрифт, и при этом шрифт, который я получил, был шрифтом по умолчанию (я имею в виду «Диалог»).
Причина этого состоит в том, чтобы свести к минимуму влияние возможного изменения в более поздних дистрибутивах Java его виртуальной машины.
Это код, вызванный выше:
MyFont onePoint=MyFont.createFont(MyFont.TRUETYPE_FONT,fontStream, size);
Затем в MyFont я закодировал:
public static MyFont createFont (int i, InputStream io, int size) throws FontFormatException, IOException {
Font font = Font.createFont(i, io);
MyFont kfont = new
MyFont(font.getName(),font.getStyle(),font.getSize());
return kfont;
}
Font
. Я не вижу причин делать это только для того, чтобы добавить простой служебный метод. Просто добавьте этот служебный метод в какой-нибудь свойFontUtil
класс и не пытайтесь расширитьFont
. - person Joachim Sauer   schedule 08.02.2011