正文

Java圖形與文本(10)

Java開發(fā)實戰(zhàn)1200例(第II卷) 作者:李鐘尉


實例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。

 


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號