當前位置:編程學習大全網 - 編程語言 - java裏字體名稱是怎麽定義的?

java裏字體名稱是怎麽定義的?

1、物理字體

物理 字體是實際的字體庫,包含字形數據和表,這些數據和表使用字體技術(如TrueType 或 PostScript Type 1)將字符序列映射到字形序列。Java Platform 的所有實現都支持 TrueType 字體;對其他字體技術的支持是與實現相關的。物理字體可以使用字體名稱,如 Helvetica、Palatino、HonMincho 或任意數量的其他字體名稱。通常,每種物理字體只支持有限的書寫系統集合,例如,只支持拉丁文字符,或者只支持日文和基本拉丁文。可用的物理字體集合隨配置的不同而有所不同。要求特定字體的應用程序可以使用 createFont 方法來捆綁這些字體,並對其進行實例化。

2、邏輯字體

邏輯 字體是由必須受所有 Java 運行時環境支持的 Java 平臺所定義的五種字體系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput。這些邏輯字體不是實際的字體庫。此外,由 Java 運行時環境將邏輯字體名稱映射到物理字體。映射關系與實現和通常語言環境相關,因此它們提供的外觀和規格各不相同。通常,為了覆蓋龐大的字符範圍,每種邏輯字體名稱都映射到幾種物理字體。

註:同級的 AWT 組件(如 Label 和 TextField)只可以使用邏輯字體。

3、字符和字形

字符 是表示項的符號(如字母、數字或具有抽象意義的標點)。例如,'g'(G 的拉丁小寫字母)是壹個字符。

字形 是用來呈現字符或字符序列的壹種形狀。在簡單的書寫系統(如拉丁文)中,通常壹個字形就表示壹個字符。但在壹般情況下,字符和字形並沒有壹對壹的對應關系。例如,字符 'á' A 的帶重音符號的拉丁小寫字母 可以由兩個字形表示:壹個是 'a',壹個是 '?'。另壹方面,兩字符的字符串 "fi" 可以由單個字形 "fi" 連字表示。在復雜的書寫系統(如阿拉伯語或南亞和東南亞語言)中,字符與字形之間的關系可能更復雜,涉及到依賴於上下文的字形選擇以及字形重排序。字體封裝了呈現所選擇的字符集所需的字形集,還封裝了將字符序列映射到相應的字形序列所需的表。

4、字體外觀和名稱

Font 可以有多個外觀,如 heavy、medium、oblique、gothic 和 regular。所有這些外觀都有相似的排字設計。

可以從 Font 對象獲得三種不同的名稱。邏輯字體名稱 只是用來構造字體的名稱。字體外觀名稱,或外觀名稱 是特定字體外觀的名稱,如 Helvetica Bold。系列名稱 是字體系列的名稱,用來確定多種外觀(如 Helvetica)的排字設計。

Font 類表示字體外觀集合中字體外觀的實例,字體外觀集合位於主機系統的系統資源中。例如,Arial Bold 和 Courier Bold Italic 是字體外觀。有幾個 Font 對象與字體外觀相關,每個對象在大小、樣式、變換和字體特征上都有所不同。

GraphicsEnvironment 類的 getAllFonts 方法返回系統中所有可用字體外觀組成的數組。這些字體外觀被作為 Font 對象返回,對象的大小為 1,具有恒等變換和默認字體特征。這些基本字體可以用來派生新的 Font 對象,使之具有變化的大小、樣式、變換和字體特征,這些可以通過此類中的 deriveFont 方法實現。

5、Font 和 TextAttribute

Font 支持大多數 TextAttribute。這使得壹些操作(如呈現帶下劃線的文本)變得更方便,因為沒必要再顯式構造壹個 TextLayout 對象。通過使用 TextAttribute 值的 Map來構造或派生屬性,可以在 Font 上設置屬性。

壹些 TextAttributes 值是不可序列化的,因此嘗試序列化具有這樣的值的 Font 實例不會使它們獲得序列化。這意味著從這樣壹個流實現序列化的 Font 不會等同於包含不可序列化屬性的原始 Font。這應該是很少出現的壹個問題,因為這些屬性通常只使用在特殊情況下並且不可能被序列化。

FOREGROUND 和 BACKGROUND 使用 Paint 值。子類 Color 是可序列化的,而 GradientPaint 和 TexturePaint 是不可序列化的。

CHAR_REPLACEMENT 使用 GraphicAttribute 值。子類 ShapeGraphicAttribute 和 ImageGraphicAttribute 是不可序列化的。

INPUT_METHOD_HIGHLIGHT 使用 InputMethodHighlight 值,它是不可序列化的。請參閱 InputMethodHighlight。

參考資料:

/api/java/Font.html

  • 上一篇:計算器的清除鍵是什麽?
  • 下一篇:汽車機器人op操作工試用期總結
  • copyright 2024編程學習大全網