logo

Java Font

v Javě, Písmo je třída, která patří do java.awt balík. Implementuje serializovatelné rozhraní. FontUIResource je přímo známá podtřída třídy Java Font.

Představuje písmo, které se používá k vykreslení textu. V Javě existují dva technické termíny, které se používají k reprezentaci písma postavy a Glyfy .

Typy písem v Javě

V Javě jsou dva typy písem:

  • Fyzická písma
  • Logická písma

Fyzická písma

Fyzická písma jsou skutečnou knihovnou písem Java. Obsahuje tabulky, které mapují sekvenci znaků na sekvence glyfů pomocí technologie písma, jako je např Písma TrueType (TTF) a PostScript Type 1 Font . Všimněte si, že veškerá implementace Javy musí podporovat TTF. Použití jiných technologií písem závisí na implementaci. Fyzické písmo zahrnuje název jako např Helvetica, Palatino, HonMincho , další názvy písem.

Vlastností fyzického písma je, že využívá omezenou sadu psacích systémů jako např latinské znaky nebo pouze japonský a Základní latina postavy. Může se lišit podle změn konfigurace. Pokud nějaká aplikace vyžaduje konkrétní písmo, uživatel může toto písmo seskupovat a vytvořit instanci pomocí createFont() metoda třídy Java Font.

Logická písma

Java definuje Pět logické rodiny písem, které jsou Patka, Bezpatkové, Jednorozporové, Dialogové, a DialogInput . Musí být podporována JRE. Všimněte si, že JRE mapuje názvy logických písem na fyzická písma, protože to nejsou skutečné knihovny písem. Obvykle je implementace mapování závislá na národním prostředí. Každý logický název písma mapuje na několik fyzických písem, aby pokryl velký rozsah znaků.

Například komponenty AWT jako např Označení a Textové pole používá pouze logická písma.

Obličeje a názvy písem

Písmo může mít mnoho podob, jako je těžké, pravidelné, střední, šikmé, gotické atd. Všechna písma mají podobný typografický design.

Objekt Font má tři různé názvy, které jsou:

    Logický název písma:Je to název, který se používá ke konstrukci písma.Název písma:Je to název konkrétního písma. Například Helvetica Bold.Rodinné jméno:Je to název rodiny písem. Určuje design typografu mezi několika tvářemi.

Třída Java Font představuje instanci obličeje písem z kolekce obličejů písem, které jsou přítomny v systémových prostředcích hostitelského systému. Příkladem řezů písem jsou Arial Bold, Courier Bold Italic atd. Řez písma (každý se liší velikostí, stylem, transformací a vlastnostmi písma) může být spojen s několika objekty Font.

Pole třídy písma

Modifikátor Pole Popis
statický int TUČNĚ Konstanta odvážného stylu.
statický int CENTER_BASELINE Základní linie používaná v ideografických písmech, jako je čínština, japonština a korejština, při rozvržení textu.
statický řetězec DIALOG Řetězcová konstanta pro kanonický název rodiny logického písma 'Dialog'.
statický řetězec DIALOG_INPUT Řetězcová konstanta pro kanonický název rodiny logického písma 'DialogInput'.
statický int HANGING_BASELINE Základní linie používaná v Devanigiri a podobných skriptech při rozvržení textu.
statický int Kurzíva Konstanta stylu psané kurzívou.
statický int LAYOUT_LEFT_TO_RIGHT Příznak pro layoutGlyphVector označující, že text je zleva doprava, jak je určeno analýzou Bidi.
statický int LAYOUT_NO_LIMIT_CONTEXT Příznak k layoutGlyphVector označující, že text v poli znaků po uvedeném limitu by neměl být zkoumán.
statický int LAYOUT_NO_START_CONTEXT Příznak layoutGlyphVector označující, že text v poli znaků před uvedeným začátkem by neměl být zkoumán.
statický int LAYOUT_RIGHT_TO_LEFT Příznak layoutGlyphVector označující, že text je zprava doleva, jak je určeno analýzou Bidi.
statický řetězec MONOSPADOVANÝ Řetězcová konstanta pro kanonický název rodiny logického písma 'Monospaced'.
statický řetězec název Logický název tohoto písma předaný konstruktoru.
statický int PROSTÝ Konstanta obyčejného stylu.
statický plovák pointSize Bodová velikost tohoto písma v float.
statický int ROMAN_BASELINE Základní linie používaná ve většině latinských písem při rozvržení textu.
statický řetězec SANS SERIF Řetězcová konstanta pro kanonický název rodiny logického písma 'SansSerif'.
statický řetězec SERIF Řetězcová konstanta pro kanonický název rodiny logického písma 'Serif'.
chráněná int velikost Bodová velikost tohoto písma, zaokrouhlená na celé číslo.
chráněná int styl Styl tohoto písma předaný konstruktoru.
statický int TRUETYPE_FONT Identifikujte zdroj písem typu TRUETYPE.
statický int TYPE1_FONT Identifikujte zdroj písma typu TYPE1.

Konstruktory tříd písem

Konstruktér Popis
Písmo (písmo písma) Vytvoří nové písmo ze zadaného písma.
Písmo (atributy mapy) Vytvoří nové písmo se zadanými atributy.
Písmo (název řetězce, styl int, velikost int) Vytvoří nové písmo ze zadaného názvu, stylu a velikosti bodu.

Metody tříd písma

Metody Popis
canDisplay(char c) Zkontroluje, zda toto písmo obsahuje glyf pro zadaný znak.
canDisplay(int codePoint) Zkontroluje, zda toto písmo obsahuje glyf pro zadaný znak.
canDisplayUpTo(znak[] text, int start, int limit) Označuje, zda toto písmo může nebo nemůže zobrazit znaky v určeném textu počínaje začátkem a končícím na limitu.
canDisplayUpTo(cesta znakového iterátoru, int start, int limit) Označuje, zda toto písmo může či nemůže zobrazit text určený iterem začínající na začátku a končící na limitu.
canDisplayUpTo(String str) Označuje, zda toto písmo může či nemůže zobrazit zadaný řetězec.
createFont(int fontFormat, Soubor fontFile) Vrátí nové písmo pomocí zadaného typu písma a zadaného souboru písem.
createFont(int fontFormat, InputStream fontStream) Vrátí nové písmo pomocí zadaného typu písma a vstupních dat.
createGlyphVector(FontRenderContext frc, char[] chars) Vytváří GlyphVector mapováním znaků na glyfy jedna ku jedné na základě cmap Unicode v tomto písmu.
createGlyphVector(FontRenderContext frc, CharacterIterator ci) Vytváří GlyphVector mapováním zadaných znaků na glyfy jedna ku jedné na základě cmap Unicode v tomto písmu.
createGlyphVector(FontRenderContext frc, int[] glyphCodes) Vytváří GlyphVector mapováním znaků na glyfy jedna ku jedné na základě cmap Unicode v tomto písmu.
createGlyphVector(FontRenderContext frc, String str) Vytváří GlyphVector mapováním znaků na glyfy jedna ku jedné na základě cmap Unicode v tomto písmu.
dekódovat (string str) Vrací písmo, které popisuje argument str.
deriveFont (AffineTransform trans) Vytvoří nový objekt Font replikací aktuálního objektu Font a aplikováním nové transformace na něj.
deriveFont (plovoucí velikost) Vytvoří nový objekt Font replikací aktuálního objektu Font a aplikováním nové velikosti na něj.
deriveFont (styl int) Vytvoří nový objekt Font replikací aktuálního objektu Font a aplikováním nového stylu na něj.
deriveFont(styl int, AffineTransform trans) Vytvoří nový objekt Font replikací tohoto objektu Font a použitím nového stylu a transformace.
deriveFont (styl int, plovoucí velikost) Vytvoří nový objekt Font replikací tohoto objektu Font a použitím nového stylu a velikosti.
deriveFont (atributy mapy) Vytvoří nový objekt Font replikací aktuálního objektu Font a použitím nové sady atributů písma na něj.
rovná se (objekt objektu) Porovná tento objekt Font se zadaným objektem.
getAttributes() Vrátí mapu atributů písem dostupných v tomto písmu.
getAvailableAttributes() Vrátí klíče všech atributů podporovaných tímto písmem.
getBaselineFor(char c) Vrátí základní linii vhodnou pro zobrazení tohoto znaku.
getFamily() Vrátí příjmení tohoto písma.
getFamily (místní l) Vrátí název rodiny tohoto písma, lokalizovaný pro zadané národní prostředí.
getFont (atributy mapy) Vrací písmo odpovídající atributům.
getFont(String nm) Vrátí objekt Font ze seznamu vlastností systému.
getFont(String nm, písmo písma) Získá zadané písmo ze seznamu vlastností systému.
getFontName() Vrátí název fontu tohoto fontu.
getFontName (místní l) Vrací název písma pro písmo, lokalizovaný pro zadané národní prostředí.
getItalicAngle() Vrátí úhel kurzívy tohoto písma.
getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc) Vrátí objekt LineMetrics vytvořený se zadanými argumenty.
getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc) Vrátí objekt LineMetrics vytvořený se zadanými argumenty.
getLineMetrics(String str, FontRenderContext frc) Vrátí objekt LineMetrics vytvořený se zadaným řetězcem String a FontRenderContext.
getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc) Vrátí objekt LineMetrics vytvořený se zadanými argumenty.
getMaxCharBounds(FontRenderContext frc) Vrací hranice pro znak s maximálními hranicemi, jak je definováno v zadaném FontRenderContext.
getMissingGlyphCode() Vrátí glyphCode, který se používá, když toto písmo nemá glyf pro zadaný bod kódu unicode.
getName() Vrací logický název tohoto písma.
getNumGlyphs() Vrací počet glyfů v tomto písmu.
getPeer() Vykreslování písem je nyní nezávislé na platformě.
getPSName() Vrátí postscriptový název tohoto písma.
getSize() Vrací velikost bodu tohoto písma zaokrouhlenou na celé číslo.
getSize2D() Vrací velikost bodu tohoto písma v plovoucí hodnotě.
getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc) Vrací logické hranice zadaného pole znaků v zadaném FontRenderContext.
getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc) Vrací logické hranice znaků indexovaných v zadaném CharacterIterator v zadaném FontRenderContext.
getStringBounds(String str, FontRenderContext frc) Vrací logické hranice zadaného řetězce v zadaném FontRenderContext.
getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc) Vrací logické hranice zadaného řetězce v zadaném FontRenderContext.
getStyle() Vrátí styl tohoto písma.
getTransform() Vrátí kopii transformace spojené s tímto písmem.
hashCode() Vrací hashcode pro toto písmo.
hasLayoutAttributes() Vrací hodnotu true, pokud toto písmo obsahuje atributy, které vyžadují zvláštní zpracování rozvržení.
hasUniformLineMetrics() Kontroluje, zda má toto písmo jednotné metriky čar.
isBold() Označuje, zda je styl tohoto objektu Font TUČNÝ.
kurzíva() Označuje, zda styl tohoto objektu Font je nebo není KURZIVA.
isPlain() Označuje, zda je styl tohoto objektu Font PLAIN či nikoli.
isTransformed() Označuje, zda má tento objekt Font transformaci, která ovlivňuje jeho velikost kromě atributu Size.
layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags) Vrátí nový objekt GlyphVector a pokud je to možné, provede plné rozložení textu.
toString() Převede tento objekt Font na reprezentaci řetězce.

Podívejme se na příklad Java Font.

JavaFontExample.java

 import java.applet.Applet; import java.awt.Font; import java.awt.Graphics; public class JavaFontExample extends Applet { public void paint(Graphics gph) { //creating a constructor of the font class and passing name, style, and size of the font //we can change these three parameters accordingly Font font= new Font('Courier', Font.PLAIN, 20); //setting font by invoking the setFont() method gph.setFont(font); gph.drawString('Javatpoint is the best learning platform.', 12, 45); } } 

Chcete-li spustit výše uvedený program, postupujte podle následujících kroků:

i. Zkopírujte a vložte výše uvedený kód a uložte soubor s názvem JavaFontExample.java.

ii. Vytvořte soubor HTM a napište následující kód.

JavaFontExample.html

shell třídit
 

iii. Otevřete příkazový řádek a spusťte následující příkazy:

 JavaFontExample.java appletviewer JavaFontExample.java 

Výstup 1:

Java Font

Chcete-li získat následující výstup, proveďte změny v následujícím příkazu:

 Font font= new Font('Monospaced', Font.ITALIC, 30); //name, face and size of font is changed 

Výstup 2:

Java Font