正文

Java圖形與文本(2)

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


設(shè)計(jì)過程

(1)新建一個(gè)項(xiàng)目。

(2)在項(xiàng)目中創(chuàng)建一個(gè)繼承JFrame類的DrawRectangleFrame窗體類。

(3)在DrawRectangleFrame窗體類中,創(chuàng)建內(nèi)部面板類DrawRectanglePanel,并重寫JComponent類的paint()方法,在該方法中使用Graphics類的drawRect()和fillRect()方法繪制矩形。

(4)將內(nèi)部面板類DrawRectanglePanel的實(shí)例,添加到窗體類DrawRectangleFrame的內(nèi)容面板上,用于在窗體上顯示繪制的矩形,代碼如下:

class DrawRectanglePanel extends JPanel { // 創(chuàng)建內(nèi)部面板類

public void paint(Graphics g) { // 重寫paint()方法

g.drawRect(30, 40, 80, 60) ; // 繪制空心矩形

g.fillRect(140, 40, 80, 60); // 繪制實(shí)心矩形

}

}

秘笈心法

心法領(lǐng)悟002:將矩形和直線組合,可以繪制軍棋、象棋等的棋盤。

先繪制一個(gè)棋盤大小的矩形,然后在矩形內(nèi)適當(dāng)?shù)奈恢美L制縱橫交錯(cuò)的直線,可以完成軍棋、象棋等棋盤的繪制。

實(shí)例003  繪制正方形 

實(shí)例說明

關(guān)鍵技術(shù)

本實(shí)例也是通過在JPanel類的子類中,重寫JComponent類的paint()方法,并在該方法中使用Graphics類的drawRect()和fillRect()方法來(lái)實(shí)現(xiàn)的。

使用Graphics類的drawRect()和fillRect()方法繪制矩形時(shí),如果將這兩個(gè)方法中表示寬度和高度的參數(shù)設(shè)置為相同的值,繪制出來(lái)的圖形就是正方形。

例如:

g.drawRect( 30, 20, 120, 120 );            // 在點(diǎn)(30 , 20)處繪制邊長(zhǎng)是120的正方形

設(shè)計(jì)過程

(1)新建一個(gè)項(xiàng)目。

(2)在項(xiàng)目中創(chuàng)建一個(gè)繼承JFrame類的DrawSquareFrame窗體類。

(3)在DrawSquareFrame窗體類中,創(chuàng)建內(nèi)部面板類DrawSquarePanel,并重寫JComponent類的paint()方法,在該方法中使用Graphics類的drawRect()和fillRect()方法繪制正方形。

(4)將內(nèi)部面板類DrawSquarePanel的實(shí)例,添加到窗體類DrawSquareFrame的內(nèi)容面板上,用于在窗體上顯示繪制的正方形,代碼如下:

class DrawSquarePanel extends JPanel {     // 創(chuàng)建內(nèi)部面板類

    public void paint(Graphics g) {        // 重寫paint()方法

        g.drawRect(20, 20, 100, 100);     // 繪制空心正方形

        g.drawRect(40, 40, 60, 60);       // 繪制空心正方形

        g.drawRect(140, 20, 100, 100);    // 繪制空心正方形

        g.fillRect(160, 40, 60, 60) ;       // 繪制實(shí)心正方形

    }

}

秘笈心法

心法領(lǐng)悟003:使用fillRect()方法繪制柱形圖。

在實(shí)際項(xiàng)目中繪制柱形圖表時(shí),可以使用fillRect()方法繪制柱形,這樣就可以通過圖形對(duì)數(shù)據(jù)進(jìn)行分析,使數(shù)據(jù)信息看起來(lái)更加直觀。

 

 


上一章目錄下一章

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