В 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: