有什麼方法可以在Java中獲取系統默認字體名稱?默認字體可以不同於操作系統。因此,如果我們使用字體Arial並且在沒有安裝Arial字體的情況下在Linux中運行jar,它可能會造成麻煩。獲取系統默認字體
獲取系統默認字體
回答
的JavaFX使這是一個容易得多:
import javafx.scene.text.Font;
然後使用:
Font defaultFont = Font.getDefault();
或
// Where 14 is the font size
Font defaultFont = new Font(14);
我不認爲有一種檢索系統默認字體的方法(例如,在Swing/AWT中,字體通常與當前的LAF和組件相關聯),但是如果您關心的是字體兼容性 - 您可以檢查所用字體:
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] allFonts = e.getAllFonts();
如果不存在,則進行「故障切換」選擇。
+1參見[獲取字體,大小,粗體,...等(http://stackoverflow.com/questions/6965038/getting-fonts-sizes-bold-etc/6965149# 6965149)。 –
關於故障轉移,「Font.canDisplayUpTo」對於測試特定字符是否有效非常有用 - 例如,如果您使用的是CJK語言字體並且需要支持這些語言的後備選項。 – misaka
的getFont()返回當前字體,這是(通常是?)的默認。 我這樣做是爲了增加字體大小。
public MyTextArea(){
Font currentFont = super.getFont();
String fontName = currentFont.getFontName();
int fontStyle = currentFont.getStyle();
int fontSize = currentFont.getSize() + 4;
super.setFont(new Font(fontName, fontStyle, fontSize));
}
或:'Font currentFont = super.getFont(); if(currentFont!= null)super.setFont(currentFont.deriveFont(currentFont.getSize2D()+ 4));' – Supuhstar
對象獲得它:
private final Font getFont()
{
Graphics g = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB).getGraphics();
Font font = new Font(g.getFont().toString(), 0, 12);
g.dispose();
return font;
}
在public static Font decode(String str)看看這裏。當decode方法收到一個空指針作爲參數時,它會返回通常爲系統字體的「Dialog」字體。
new Font(Font.decode(null).getName(),Font.BOLD,14/* size * /);作品,謝謝 – Exceptyon
試試這個:
private final Font FONT = new JLabel().getFont();
在Windows中,Segoe UI
請訪問http://www.apaddedcell.com/sites/www.apaddedcell.com/files/fonts-article/final/index.html查看預裝字體的列表。
我選擇宋體
- 1. UITextView字體反轉回系統默認
- 2. 獲取系統默認包名
- 3. Java。獲取系統默認打印機
- 4. 獲取TabHost默認的系統顏色
- 5. 獲取系統字體
- 6. 如何在Qt中獲得系統默認字體大小?
- 7. 如何在.NET Compact Framework中獲得默認的系統字體?
- 8. 如何使用pygtk或pango獲取系統使用的默認字體?
- 9. 獲取默認字體家族
- 10. Xcode 7.3.1的默認字體(系統字體)是舊金山字體?
- 11. Android - 檢索默認系統字體字符串名稱
- 12. android webview設置字體大小系統默認?
- 13. 如何替換整個操作系統的默認字體
- 14. 更改控件使用的默認系統字體
- 15. 如何獲取C#progressbar上的默認系統風格
- 16. 如何在Python 2.x中獲取系統默認編碼?
- 17. 如何獲取文件的默認系統圖標?
- 18. 在C中獲取操作系統的默認顏色
- 19. 如何獲取系統的默認瀏覽器?
- 20. 如何從java系統字體中獲取ttf字體數據
- 21. 什麼是默認字體系列?
- 22. 如何指定系統的默認serif和sans-serif字體系列?
- 23. Sane默認字體?
- 24. HTML默認字體
- 25. JasperReports默認字體
- 26. css:如何獲得瀏覽器的默認字體系列
- 27. 獲取系統
- 28. SDL_TTF系統字體
- 29. WPF使用的Windows窗體沒有默認的系統設計
- 30. Windows系統上的非系統字體
最新和正確的答案恕我直言 – Troyseph
有沒有辦法在Swing做到這一點? –
@CardinalSystem我建議使用此JavaFX'Font'的名稱,大小和權重來創建Swing'Font'。如果你不喜歡這種味道,那麼我認爲救世的答案是給你的:https://stackoverflow.com/a/11592041/453435 – Supuhstar