實例011 設(shè)置文本的字體
實例說明
本實例演示在Java中繪制文本時,如何設(shè)置文本的字體,其中包括字體名稱、大小和樣式。運行程序,效果如圖1.11所示。
關(guān)鍵技術(shù)
本實例主要是通過在JPanel類的子類中,重寫JComponent類的paint()方法,并在該方法中使用Graphics類的setFont()方法和使用Font類創(chuàng)建字體對象來實現(xiàn)的。
(1)使用Graphics類的setFont()方法,并將Font類創(chuàng)建的字體對象,作為setFont()方法的參數(shù),實現(xiàn)為文本設(shè)置字體的操作,setFont()方法的定義如下:
public abstract void setFont(Font font)
參數(shù)說明
font:為文本設(shè)置的字體對象。
(2)使用Font類創(chuàng)建字體對象,其構(gòu)造方法的定義如下:
public Font(String name, int style, int size)
參數(shù)說明
? name:字體的名稱。
? style:字體的樣式。
? size:字體的大小。
設(shè)計過程
(1)新建一個項目。
(2)在項目中創(chuàng)建一個繼承JFrame類的TextFontFrame窗體類。
(3)在TextFontFrame窗體類中,創(chuàng)建內(nèi)部面板類ChangeTextFontPanel,并重寫JComponent類的paint()方法,在該方法中使用Font類創(chuàng)建字體對象,并使用Graphics類的setFont()方法設(shè)置文本的字體。
(4)將內(nèi)部面板類ChangeTextFontPanel的實例,添加到窗體類TextFontFrame的內(nèi)容面板上,用于在窗體上顯示指定字體后的文本,代碼如下:
class ChangeTextFontPanel extends JPanel { // 創(chuàng)建內(nèi)部面板類
public void paint(Graphics g) { // 重寫paint()方法
String value = "明日編程詞典社區(qū)";
int x = 40; // 文本位置的橫坐標(biāo)
int y = 50; // 文本位置的縱坐標(biāo)
Font font = new Font("華文行楷", Font.BOLD + Font.ITALIC, 26); // 創(chuàng)建字體對象
g.setFont(font); // 設(shè)置字體
g.drawString(value, x, y); // 繪制文本
value = "https://community.mrbccd.com";
x = 10; // 文本位置的橫坐標(biāo)
y = 100; // 文本位置的縱坐標(biāo)
font = new Font("宋體", Font.BOLD, 20); // 創(chuàng)建字體對象
g.setFont(font); // 設(shè)置字體
g.drawString(value, x, y); // 繪制文本
}
}
秘笈心法
心法領(lǐng)悟011:單一字體樣式及字體樣式的組合。
在繪制文本的同時,經(jīng)常需要設(shè)置文本的字體樣式,以達到醒目的效果。字體樣式包括粗體樣式Font.BOLD、斜體樣式Font.ITALIC和普通樣式Font.PLAIN,這些字體樣式可以單獨設(shè)置,也可以組合使用。在組合使用時,需要用連接符“+”進行連接,如粗斜體樣式為Font.BOLD+Font.ITALIC。