В Java, Шрифт е клас, който принадлежи към java.awt пакет. Той реализира интерфейса Serializable. FontUIResource е директният известен подклас на класа Java Font.
Той представлява шрифта, който се използва за изобразяване на текста. В Java има два технически термина, които се използват за представяне на шрифтове герои и Глифове .
Видове шрифтове в Java
В Java има два вида шрифтове:
- Физически шрифтове
- Логически шрифтове
Физически шрифтове
Физическите шрифтове са действителна библиотека с шрифтове на Java. Той съдържа таблици, които картографират последователност от символи към последователности от глифове чрез използване на технологията на шрифта, като напр TrueType шрифтове (TTF) и PostScript тип 1 шрифт . Имайте предвид, че всички реализации на Java трябва да поддържат TTF. Използването на други шрифтови технологии зависи от изпълнението. Физическият шрифт включва името като напр Хелветика, Палатино, ХонМинчо , други имена на шрифтове.
Свойството на физическия шрифт е, че той използва ограничен набор от системи за писане като напр латински знаци или само японски и Основен латински герои. Може да варира по отношение на промените в конфигурацията. Ако някое приложение изисква конкретен шрифт, потребителят може да обедини и инстанцира този шрифт, като използва createFont() метод на класа Java Font.
Логически шрифтове
Java дефинира пет логически семейства шрифтове, които са Serif, SansSerif, Monospaced, Dialog, и DialogInput . Трябва да се поддържа от JRE. Имайте предвид, че JRE преобразува логическите имена на шрифтове във физическия шрифт, защото това не са действителните библиотеки с шрифтове. Обикновено прилагането на картографиране зависи от локала. Всяко име на логически шрифт се съпоставя с няколко физически шрифта, за да покрие голям набор от знаци.
Например AWT компоненти като Етикет и Текстово поле използва само логически шрифтове.
Шрифтове и имена
Шрифтът може да има много лица, като тежък, правилен, среден, наклонен, готически и т.н. Всички лица на шрифта имат подобен типографски дизайн.
Обект Font има три различни имена, които са:
Класът Java Font представлява екземпляр на лице на шрифт от колекция от лица на шрифтове, които присъстват в системните ресурси на хост системата. Примери за лица на шрифт са Arial Bold, Courier Bold Italic и т.н. Лице на шрифт (всеки различен по размер, стил, трансформация и характеристика на шрифта) може да се асоциира с няколко обекта Font.
Полета на класа на шрифта
| Модификатор | Поле | Описание |
|---|---|---|
| статично вътр | СМЕЛ | Постоянният смел стил. |
| статично вътр | CENTER_BASELINE | Основната линия, използвана в идеографски скриптове като китайски, японски и корейски при оформление на текст. |
| статичен низ | ДИАЛОГ | String константа за каноничното фамилно име на логическия шрифт „Dialog“. |
| статичен низ | DIALOG_INPUT | Низова константа за каноничното фамилно име на логическия шрифт „DialogInput“. |
| статично вътр | HANGING_BASELINE | Базовата линия, използвана в Devanigiri и подобни скриптове при оформление на текст. |
| статично вътр | КУТИВ | Константата на курсивния стил. |
| статично вътр | LAYOUT_LEFT_TO_RIGHT | Флаг за layoutGlyphVector, показващ, че текстът е отляво надясно, както е определено от Bidi анализа. |
| статично вътр | LAYOUT_NO_LIMIT_CONTEXT | Флаг към layoutGlyphVector, показващ, че текстът в масива char след посоченото ограничение не трябва да се проверява. |
| статично вътр | LAYOUT_NO_START_CONTEXT | Флаг към layoutGlyphVector, показващ, че текстът в масива char преди указаното начало не трябва да се проверява. |
| статично вътр | LAYOUT_RIGHT_TO_LEFT | Флаг за layoutGlyphVector, показващ, че текстът е отдясно наляво, както е определено от Bidi анализа. |
| статичен низ | ЕДНОПРЕДЕЛЕН | Низова константа за каноничното фамилно име на логическия шрифт „Monospaced“. |
| статичен низ | име | Логичното име на този шрифт, както е предадено на конструктора. |
| статично вътр | ОБИКНОВЕН | Постоянният обикновен стил. |
| статичен поплавък | pointSize | Размерът на този шрифт във float. |
| статично вътр | ROMAN_BASELINE | Основната линия, използвана в повечето латински скриптове при оформяне на текст. |
| статичен низ | SANS SERIF | Низова константа за каноничното фамилно име на логическия шрифт „SansSerif“. |
| статичен низ | SERIF | Низова константа за каноничното фамилно име на логическия шрифт „Serif“. |
| защитен вътр | размер | Размерът на този шрифт, закръглен до цяло число. |
| защитен вътр | стил | Стилът на този шрифт, както е предаден на конструктора. |
| статично вътр | TRUETYPE_FONT | Идентифицирайте шрифтов ресурс от тип TRUETYPE. |
| статично вътр | TYPE1_FONT | Идентифицирайте шрифтов ресурс от тип TYPE1. |
Конструктори на шрифтови класове
| Конструктор | Описание |
|---|---|
| Шрифт (Шрифт на шрифта) | Създава нов шрифт от посочения шрифт. |
| Шрифт (атрибути на картата) | Създава нов шрифт с посочените атрибути. |
| Шрифт (име на низ, int стил, int размер) | Създава нов шрифт от зададеното име, стил и размер на точката. |
Методи за клас шрифтове
| Методи | Описание |
|---|---|
| canDisplay(char c) | Той проверява дали този шрифт има глиф за посочения знак. |
| canDisplay(int codePoint) | Той проверява дали този шрифт има глиф за посочения знак. |
| canDisplayUpTo(char[] текст, int начало, int ограничение) | Той показва дали този шрифт може или не може да показва знаците в посочения текст, започвайки от начало и завършвайки при ограничение. |
| canDisplayUpTo(CharacterIterator path, int start, int limit) | Той показва дали този шрифт може или не може да показва текста, определен от iter, започвайки от начало и завършвайки при ограничение. |
| canDisplayUpTo(String str) | Той показва дали този шрифт може да показва определен низ. |
| createFont(int fontFormat, File fontFile) | Той връща нов шрифт, използвайки посочения тип шрифт и посочения файл с шрифтове. |
| createFont(int fontFormat, InputStream fontStream) | Той връща нов шрифт, използвайки посочения тип шрифт и входни данни. |
| createGlyphVector(FontRenderContext frc, char[] chars) | Той създава GlyphVector чрез картографиране на знаци към глифове едно към едно въз основа на Unicode cmap в този шрифт. |
| createGlyphVector(FontRenderContext frc, CharacterIterator ci) | Той създава GlyphVector чрез картографиране на посочените знаци към глифове едно към едно въз основа на Unicode cmap в този шрифт. |
| createGlyphVector(FontRenderContext frc, int[] glyphCodes) | Той създава GlyphVector чрез картографиране на знаци към глифове едно към едно въз основа на Unicode cmap в този шрифт. |
| createGlyphVector(FontRenderContext frc, String str) | Той създава GlyphVector чрез картографиране на знаци към глифове едно към едно въз основа на Unicode cmap в този шрифт. |
| декодиране (String str) | Връща шрифта, който аргументът str описва. |
| deriveFont(AffineTransform trans) | Той създава нов обект Font, като репликира текущия обект Font и прилага нова трансформация към него. |
| deriveFont(плаващ размер) | Той създава нов обект Font, като репликира текущия обект Font и прилага нов размер към него. |
| deriveFont(int стил) | Той създава нов обект Font, като репликира текущия обект Font и прилага нов стил към него. |
| deriveFont(int стил, AffineTransform trans) | Той създава нов обект Font, като репликира този обект Font и прилага нов стил и трансформация. |
| deriveFont(int стил, плаващ размер) | Той създава нов обект Font, като репликира този обект Font и прилага нов стил и размер. |
| deriveFont(Атрибути на картата) | Той създава нов обект Font, като репликира текущия обект Font и прилага нов набор от атрибути на шрифта към него. |
| е равно (Object obj) | Той сравнява този обект Font с посочения обект. |
| getAttributes() | Той връща карта на атрибутите на шрифта, налични в този шрифт. |
| getAvailableAttributes() | Той връща ключовете на всички атрибути, поддържани от този шрифт. |
| getBaselineFor(char c) | Връща базовата линия, подходяща за показване на този знак. |
| getFamily() | Връща фамилията на този шрифт. |
| getFamily (Locale l) | Връща фамилното име на този шрифт, локализирано за посочения локал. |
| getFont (атрибути на картата) | Той връща шрифт, подходящ за атрибутите. |
| getFont (низ nm) | Той връща обект Font от списъка със системни свойства. |
| getFont(Низ nm, шрифт на шрифта) | Получава посочения шрифт от списъка със свойства на системата. |
| getFontName() | Връща името на шрифта на този шрифт. |
| getFontName(Locale l) | Връща името на лицето на шрифта, локализирано за посочения локал. |
| getItalicAngle() | Връща ъгъла на курсив на този шрифт. |
| getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc) | Той връща обект LineMetrics, създаден с посочените аргументи. |
| getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc) | Той връща обект LineMetrics, създаден с посочените аргументи. |
| getLineMetrics(String str, FontRenderContext frc) | Той връща обект LineMetrics, създаден с указания String и FontRenderContext. |
| getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc) | Той връща обект LineMetrics, създаден с посочените аргументи. |
| getMaxCharBounds(FontRenderContext frc) | Той връща границите за знака с максималните граници, както е дефинирано в посочения FontRenderContext. |
| getMissingGlyphCode() | Той връща glyphCode, който се използва, когато този шрифт няма глиф за определена кодова точка на unicode. |
| getName() | Връща логичното име на този шрифт. |
| getNumGlyphs() | Връща броя на глифовете в този шрифт. |
| getPeer() | Изобразяването на шрифтове вече е независимо от платформата. |
| getPSName() | Връща името postscript на този шрифт. |
| getSize() | Връща размера на точката на този шрифт, закръглен до цяло число. |
| getSize2D() | Той връща размера на точката на този шрифт в плаваща стойност. |
| getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc) | Той връща логическите граници на посочения масив от знаци в посочения FontRenderContext. |
| getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc) | Той връща логическите граници на знаците, индексирани в посочения CharacterIterator в посочения FontRenderContext. |
| getStringBounds(String str, FontRenderContext frc) | Той връща логическите граници на посочения низ в посочения FontRenderContext. |
| getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc) | Той връща логическите граници на посочения низ в посочения FontRenderContext. |
| getStyle() | Връща стила на този шрифт. |
| getTransform() | Той връща копие на трансформацията, свързана с този шрифт. |
| хеш код() | Той връща хешкод за този шрифт. |
| hasLayoutAttributes() | Връща true, ако този шрифт съдържа атрибути, които изискват допълнителна обработка на оформлението. |
| hasUniformLineMetrics() | Той проверява дали този шрифт има еднакви показатели за редове. |
| isBold() | Той показва дали стилът на обекта Font е BOLD или не. |
| курсив() | Той показва дали стилът на обекта Font е ИТАЛИК. |
| isPlain() | Той показва дали стилът на обекта Font е PLAIN или не. |
| isTransformed() | Той показва дали този обект Font има или не трансформация, която влияе върху неговия размер в допълнение към атрибута Size. |
| layoutGlyphVector(FontRenderContext frc, char[] текст, int начало, int ограничение, int флагове) | Той връща нов обект GlyphVector, изпълнявайки пълно оформление на текста, ако е възможно. |
| toString() | Той преобразува този обект Font в представяне на String. |
Нека да видим пример за 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); } } За да изпълните горната програма, следвайте стъпките, дадени по-долу:
аз Копирайте и поставете горния код и запазете файла с името JavaFontExample.java.
ii. Създайте HTM файл и напишете следния код.
JavaFontExample.html
iii. Отворете командния ред и изпълнете следните команди:
JavaFontExample.java appletviewer JavaFontExample.java
Резултат 1:
За да получите следния резултат, направете промените в следния оператор:
Font font= new Font('Monospaced', Font.ITALIC, 30); //name, face and size of font is changed
Резултат 2: