本文介紹了如何在Java中為Swing組件設(shè)置字體粗細(xì)的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我想為我的JFrame對(duì)話框上的組件設(shè)置不同的字體粗細(xì)。我該怎么做?
在以下Java語句中
setFont(new Font("Dialog", Font.BOLD, 12));
當(dāng)我使用Font.BOLD時(shí),它太粗體,而當(dāng)我使用Font.Plain時(shí),它太樸素。我想要一個(gè)介于兩者之間的東西。
推薦答案
韋勒部分正確。您可以使用TextAttributes獲取字體:
Map<TextAttribute, Object> attributes = new HashMap<>();
attributes.put(TextAttribute.FAMILY, Font.DIALOG);
attributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_SEMIBOLD);
attributes.put(TextAttribute.SIZE, 12);
label.setFont(Font.getFont(attributes));
更好的方法是通過外觀從Swing組件上安裝的字體派生字體:
Font font = label.getFont();
font = font.deriveFont(
Collections.singletonMap(
TextAttribute.WEIGHT, TextAttribute.WEIGHT_SEMIBOLD));
label.setFont(font);
這將保留字體的系列和大小,用戶可能出于可讀性原因在其桌面首選項(xiàng)中設(shè)置了這些字體。
這篇關(guān)于如何在Java中為Swing組件設(shè)置字體粗細(xì)的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,