Java開發筆記(一百二十四)AWT繪圖操做

前面介紹瞭如何使用畫筆在控件上展現圖像,但是圖像來源於磁盤圖片,沒法即興繪製個性化的圖案。所幸畫筆工具Graphics不只可以描繪圖像,還支持繪製常見的幾何形狀,也支持繪製文本字符串,除了繪製圖像用到的drawImage方法,Graphics還有下列常見的繪圖方法:
setColor:設置畫筆的顏色。
drawLine:在指定座標的(x1,y1)與(x2,y2)兩點之間畫條線段。
drawRect:以座標點(x,y)爲左上角,繪製指定寬高的矩形邊框。
fillRect:以座標點(x,y)爲左上角,繪製指定寬高的矩形區域。
drawRoundRect:以座標點(x,y)爲左上角,繪製指定寬高和指定圓角的圓角矩形邊框。
fillRoundRect:以座標點(x,y)爲左上角,繪製指定寬高和指定圓角的圓角矩形區域。
drawOval:以座標點(x,y)爲外切矩形的左上角,繪製指定橫縱半徑的橢圓輪廓。注意,若是橫縱半徑的數值相等,此時橢圓就變成了圓形。
fillOval:以座標點(x,y)爲外切矩形的左上角,繪製指定橫縱半徑的橢圓區域。
drawArc:以座標點(x,y)爲外切矩形的左上角,繪製指定橫縱半徑和指定角度的圓弧。
fillArc:以座標點(x,y)爲外切矩形的左上角,繪製指定橫縱半徑和指定角度的扇形。
setFont:設置畫筆的字體。
drawString:在當前位置的橫縱偏移距離處繪製文本。html

此外,Graphics也支持幾種簡單的管理操做,包括平移畫筆、擦除區域、裁剪畫布等功能,對應的處理方法說明以下:
translate:平移畫筆至座標點(x,y)。
clearRect:清除某塊矩形區域,該矩形以座標點(x,y)爲左上角,且符合指定寬高。
clipRect:裁剪某塊矩形區域,該矩形以座標點(x,y)爲左上角,且符合指定寬高。該方法的執行效果與clearRect正好相反,clearRect方法清除了矩形內部的全部圖案;而clipRect方法清除了矩形外部的全部圖案,只留下矩形內部的圖案。工具

繪製圖案與字符串的過程與繪製圖像同樣,都是重寫自定義控件的paint方法,在該方法中調用畫筆對象的各類繪圖方法。接下來按照以前的圖像視圖依樣畫瓢定義一個繪畫視圖DrawView,變更之處在於繪製控件的paint方法,並據此演示幾種圖案的實現效果。首先準備繪製一條黑色線段,線段的起點位於控件的左上角,終點位於控件的右下角,則相應的繪製方法示例以下:測試

			g.setColor(Color.BLACK); // 設置畫筆的顏色爲黑色
			// 在指定座標的(x1,y1)與(x2,y2)兩點之間畫條線段
			g.drawLine(0, 0, getWidth(), getHeight());

 

主界面的代碼比較簡單,有關繪畫視圖的調用可參考以下的代碼片斷:字體

		Panel panelCenter = new Panel(); // 建立中央面板
		DrawView draw = new DrawView(); // 建立一個繪畫視圖
		draw.setSize(360, 180); // 設置繪畫視圖的寬高
		panelCenter.add(draw); // 在中央面板上添加繪畫視圖
		frame.add(panelCenter, BorderLayout.CENTER); // 把中央面板添加到窗口的中間位置

 

運行修改後的測試代碼,彈出的線段繪製窗口界面以下圖所示。htm


接着繪製一個矩形邊框,假設邊框爲紅色,則對應的繪製方法以下所示:對象

			g.setColor(Color.RED); // 設置畫筆的顏色爲紅色
			// 以座標點(x,y)爲左上角,繪製指定寬高的矩形邊框
			g.drawRect(10, 10, getWidth() - 20, getHeight() - 20);

 

一樣運行測試界面代碼,彈出的矩形繪製窗口界面以下圖所示。blog


再繪製一個綠色的圓角矩形,但它是實心的,此時繪製過程應當調用fillRoundRect方法:圖片

			g.setColor(Color.GREEN); // 設置畫筆的顏色爲綠色
			// 以座標點(x,y)爲左上角,繪製指定寬高和指定圓角的圓角矩形區域
			g.fillRoundRect(10, 10, getWidth() - 20, getHeight() - 20, 50, 50);

 

運行主界面的測試代碼,彈出的圓角矩形繪製窗口以下圖所示。ip


繼續繪製一個藍色的橢圓輪廓,注意它是空心的,此時繪製過程應當調用drawOval方法:開發

			g.setColor(Color.BLUE); // 設置畫筆的顏色爲藍色
			// 以座標點(x,y)爲外切矩形的左上角,繪製指定橫縱半徑的橢圓輪廓
			g.drawOval(10, 10, getWidth() - 20, getHeight() - 20);

 

運行主界面的測試代碼,彈出的橢圓繪製窗口界面以下圖所示。


還能夠繪製一個橙色的扇形,所謂扇形是由某段圓弧鏈接兩端的橫縱半徑組成,所以它至關於實心的圓弧,此時繪製過程應當調用dfillArc方法:

			g.setColor(Color.ORANGE); // 設置畫筆的顏色爲橙色
			// 以座標點(x,y)爲外切矩形的左上角,繪製指定橫縱半徑和指定角度的扇形
			g.fillArc(10, 10, getWidth() - 20, getHeight() - 20, 0, 90);

 

運行主界面的測試代碼,彈出的扇形繪製窗口界面以下圖所示。


最後使用畫筆繪製幾個文字,同時指定這段文字的顏色、字體以及大小,則對應的繪製方法以下所示:

			g.setColor(Color.BLACK); // 設置畫筆的顏色爲黑色
			g.setFont(new Font("大號粗體", Font.BOLD, 50)); // 設置畫筆的字體
			g.drawString("春天花會開", 50, 50); // 在當前位置的橫縱偏移距離處繪製文本

 

運行主界面的測試代碼,彈出的文字繪製窗口界面以下圖所示。

 


更多Java技術文章參見《Java開發筆記(序)章節目錄

相關文章
相關標籤/搜索