天天看點

《Java數字圖像處理:程式設計技巧與應用實踐》——1.3 用Java Swing繪制自定義的JPanel

本節書摘來自華章計算機《java數字圖像處理:程式設計技巧與應用實踐》一書中的第1章,第1.3節,作者 賈志剛,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

swing的jpanel元件是gui程式設計中最重要的面闆元件,可以通過重寫jpanel中paint-component方法實作對jpanel面闆元件的背景顔色的調整或添加背景圖檔,進而實作自定義版本的面闆(jpanel)元件。隻要完成如下幾步就可以實作一個簡單自定義jpanel面闆的繪制。

1)實作對jpanel面闆的繼承,代碼如下:

2)完成對paintcomponent(graphics g)對象的重載,代碼如下:

3)通路graphics繪制引擎,設定畫筆顔色并完成繪制,在java 2d中paint支援三種不同的畫筆顔色填充政策,它們分别是:

單一顔色填充,如color.blue、color.red等。代碼如下:

線性漸變顔色填充(gradientpaint),可以細分為水準與豎直方向。代碼如下:

圓周徑向漸變顔色填充(radialgradientpaint),支援兩種以上的顔色漸變。代碼如下:

4)設定背景圖檔支援。很多時候我們希望jpanel背景是一張圖檔而不是顔色填充,此時隻需要将bufferedimage對象通過drawimage()方法放在paintcomponent()中即可,唯一需要注意的地方就是確定bufferedimage對象不為null。代碼如下:

5)實作一個測試的main方法代碼如下:

讀者可以下載下傳相關文檔檢視完整的源代碼,源代碼是本書的一部分,請讀者盡量運作源代碼,這樣可以更好地幫助讀者了解所學内容。