Java'nın AWT'sini kullanırken Font
nesnesini oluşturmak ne kadar pahalı? Pratikte ne zaman Font
önbellekleme yapmalıyım, ya da AWT zaten dahili olarak önbelleklenen ağır yazı tipine hafif bir referans mıdır? Eğer Yazı Tipi (Bu OpenJDK olduğu) için kaynak koduna baktığımızdaJava AWT: Yazı tipi hafif bir nesnedir mi?
cevap
, isim, stil, boyut ile kurucular besbelli hafif şunlardır:
public Font(String name, int style, int size) {
this.name = (name != null) ? name : "Default";
this.style = (style & ~0x03) == 0 ? style : 0;
this.size = size;
this.pointSize = size;
}
Ancak, dosya ve fontformat alır yapıcısı geçerli: (tabii ki ağır özellikle FontManager.createFont2D(...)
parçası. Bu yapıcı().
Kapsamlı Font.createFont tarafından kullanılır olduğu
private Font(File fontFile, int fontFormat,
boolean isCopy, CreatedFontTracker tracker)
throws FontFormatException {
this.createdFont = true;
/* Font2D instances created by this method track their font file
* so that when the Font2D is GC'd it can also remove the file.
*/
this.font2DHandle =
FontManager.createFont2D(fontFile, fontFormat,
isCopy, tracker).handle;
this.name = this.font2DHandle.font2D.getFontName(Locale.getDefault());
this.style = Font.PLAIN;
this.size = 1;
this.pointSize = 1f;
}
Eğer sisteminizde bir font kullanıyorsan, iyisin, sadece onu yarat ve ismine göre gönderme. Kendi yazı tipinizi sağlıyorsanız (örn: bir TrueType dosyasından), önbelleğe almak daha iyi olabilir. (Yani, IIRC, sadece bir dosyaya AWT'nin önbelleğine yüklenmek için bir yol var, böylece sadece isimle isimlendirebilirsiniz.)
Kaynağa daha fazla kazma, getFamily(), getFontName gibi tüm işlevler(), getNumGlyphs(), ilk getFont2D (call) hangi temelde: her yazı kesinlikle hafif olduğunu gösterir, bu yüzden
private Font2D getFont2D() {
// snip
if (font2DHandle == null) {
font2DHandle =
FontManager.findFont2D(name, style,
FontManager.LOGICAL_FALLBACK).handle;
}
/* Do not cache the de-referenced font2D. It must be explicitly
* de-referenced to pick up a valid font in the event that the
* original one is marked invalid
*/
return font2DHandle.font2D;
}
ve yazı önbelleğe sorumlu olan FontManager gerekli bilgileri çekmektedir .
- 1. pdfsharp - yazı tipi yerleştirildi mi?
- 2. Yazı tipi olmayan semboller için eğitilebilir mi?
- 3. "Eskiz yazı tipi" Comic Sans'a alternatif mi?
- 4. Özel yazı tipi yüzleri jsPDF'de mi?
- 5. Java AWT - J2ME ve J9
- 6. Özel Yazı Tipi Android
- 7. Bir Google Yazı Tipi için özel ad belirtilebilir mi?
- 8. Eclipse Varsayılan Yazı tipi adı
- 9. Yazı tipi boyutunu değiştirmeden yazı tipi kalınlığını kontrol etme
- 10. iFrame için yazı tipi boyutunu ve yazı tipi-ailesini değiştirme
- 11. bu yazı tipi nedir? (ubuntu terminal yazı tipi)
- 12. Yazı tipi ile hizalama yazı tipi ile harika simgesi
- 13. UINavigationBar özel yazı tipi
- 14. Özel yazı tipi iPhone
- 15. Pixi.js özel yazı tipi
- 16. UIPickerView Yazı Tipi
- 17. Safari'de yazı tipi tutarsızlıkları
- 18. Hata: attr 'yazı tipi'
- 19. Xcode yazı tipi kayboldu
- 20. Android remoteViews özel yazı tipi
- 21. Programlama için yazı tipi boyutu?
- 22. Özel yazı tipi boyutu, yazı tipleri
- 23. Swing ile Harika Yazı Yazı tipi:
- 24. Hafif bir java portlet yazılımı önerebilir misiniz?
- 25. Windows'ta SetCurrentConsoleFontEx konsolunun yazı tipi boyutunu değiştirir mi?
- 26. JButton'da Yazı Tipi Boyutunun Artırılması
- 27. Bir Google Chrome uzantısıyla yazı tipi paketleme
- 28. Yazı tipi boyutunu bir AlertDialog olarak değiştirme
- 29. Yazı Tipi Boyutu değişiklikler kelimenin
- 30. wxPython StaticText Widget Yazı Tipi