簡體   English   中英

Java Applet GUI組件中的多種unicode字體

[英]Multiple unicode fonts in Java Applet GUI Components

我有一個帶有JLabel,JTextField和其他Java Swing組件的applet。 另一方面,我有.ttf文件的Unicode字體“ AR”,“ AR-ExtB”(擴展的B區域)和“ AR-Plus”(補充專用區域-A)。 我希望該applet在每個GUI組件上使用三個.ttf文件,具體取決於用戶輸入的代碼點。

1)我知道這些組件無法使用多種字體。 因此,將字體設置為組件的顯式方法不是一種選擇。

2)嗯,有一種方法可以通過修改$ JAVA_HOME / lib目錄中的fontconfig.properties文件來實現,例如,“ Dialog”(邏輯)字體已將三個.ttf文件映射為一種邏輯字體,但是問題在於所有其他Java應用程序也將具有這些字體,而這並不是想要的情況。

3)“后退字體”,當沒有其他字體可以在屏幕上顯示字形時使用。 這也不是解決方案,因為它將僅顯示JAVA默認字體未涵蓋的字符。

問題是:

有誰知道如何在每個GUI Swing組件中將這些.​​ttf文件用作字體,但僅在Applet內使用,而不是在JVM上運行的所有應用程序全局使用?

要將TTF文件用作字體,您需要加載它並創建一個按這樣設置的Font對象。

    try {
     GraphicsEnvironment ge = 
         GraphicsEnvironment.getLocalGraphicsEnvironment();
     ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));
} catch (IOException|FontFormatException e) {
     //Handle exception
}

之后,可以使用字體對象。

要使用邏輯字體,請檢查Oracle文檔

-蘇曼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM