❶ java繪圖機制是什麼樣的
JAVA的繪圖功能非常豐富,繪圖包括字體、顏色、圖形,以下我們將分技術專題來講。
一、關於JAVA的繪圖機制。
JAVA中的任何一個圖形組件,小到文本框、標簽,大到一個FRAME,一個DIALOG,都有一個專門負責顯示其界面的函數,這個函數名稱是固定的:paint,它的原型為: public void paint(Graphics g) { …… } 每當組件大小、位置、組件內容發生變化時,該函數即負責生成新的圖形界面顯示。由於該函數可以被子類繼承,因此,繼承的子類有能力修改該函數。如果子類中沒有出現該函數,則表示其行為完全繼承自父類。則不管是組件中是否添加了新的內容,是否發生了大小的改變,是否發生了位移,父類都要有一個專門的線程,來負責描繪變化以後的組件界面。 paint函數由父類自動維護,並且如果子類一旦重載該函數,必須自己去維護所有的界面顯示。
二、設置畫筆顏色
1、顏色常識
任何顏色都是三原色組成(RGB),JAVA中支持224位彩色,即紅綠藍色分量可取值介於0..255之間。下面首先學習一個JAVA中的類Color Color中的常量:
public final static Color black=new Color(0,0,0);
public final static Color blue=new Color(0,0,255);
…..
Color的構造函數:
public Color(int r,int g,int b);
使用舉例:如果想構造一個灰色對象,則用下面的句子:
Color gray=new Color(205,205,205);
2、設置畫筆顏色語法
g.setColor(color); //color是一個Color對象
每修改一次顏色它影響的就是下面所有的繪圖語句,一直影響到再次碰到setColor函數才以新的顏色代替。
3、使用JColorChooser組件選擇顏色 JAVA中有一個已經定義好的選色器,通過簡單的語法我們就可以將該窗口調出來,從其中選擇自己喜歡的顏色。下面的這個例子就是通過顏色選取器選取顏色,並將選擇到的顏色做為窗體的背景色。
(1)JColorChooser簡介 JColorChooser組件的showDialog()方法讓用戶從彈出的窗口中選擇一個顏色,並傳給Color對象。其調用語法如下: color=JColorChooser.showDialog(this,」選色」,color); 第一個參數指定調用選色器的父窗體,第二個參數指定選色器窗口標題,最後一個為接收顏色的顏色對象。
4、如何將一個圖形(以文件存在,如JPG或者GIF)畫到窗體的畫布中其實放置圖形到畫板中實際就是調用了畫板的drawImage函數。其大致思路如下:首先獲取一個ImageIcon對象,這個對象將會從指定的文件中讀取相關圖象信息,它支持GIF和JPG、BMP等基本圖象格式。語法如下:
ImageIcon icon=new ImageIcon(GraExp5.class.getResource("1.gif"));
獲取到圖象的圖標以後,就可以從圖標中獲取到繪制到畫板上的實際需要的圖象:
Image img=icon.getImage();
有了這個圖象對象,我們就可以用畫板的drawImage函數畫圖了。
g.drawImage(img,0,0,null);
❷ java swing 怎麼繪制一個圓角矩形的面板
設置一個圓角矩形的Border即可。
panel.setBorder(BorderFactory.createLineBorder(Color.RED,10,true));
❸ JAVA中Paint與paintComponent方法的區別是什麼
Component.paint:繪制此組件。
應該繪制組件的內容時調用此方法;例如首次顯示組件或者組件已損壞並需要修復時。Graphics 參數中的矩形框設置為需要繪制的區域。重寫此方法的 Component 子類不需要調用 super.paint(g)。
出於性能的考慮,首次顯示寬度或高度為 0 的 Component 時認為它不需要進行繪制,並且也不需要修復。
Container.paint:繪制容器。該方法將 paint 轉發給任意一個此容器子組件的輕量級組件。如果重新實現此方法,那麼應該調用 super.paint(g) 方法,從而可以正確地呈現輕量級組件。如果通過 g 中的當前剪切設置完全剪切某個子組件,則不會將 paint() 轉發給這個子組件。
Container.paintComponents:繪制此容器中的每個組件。
根據JAVA的API文檔說,PAINT是CONTAINER提供的方法,只要容器需要重畫的時候就會調用,而paintComponent則是JComponent所提供的方法,它是paint委託的一種重畫組件的方法。我的想法是paint只會負責重畫容器類的界面例如:Frame Dialog Window之類的,而在這些容器之上的組件則由paint委託paintComponent負責重畫。
❹ java中paint方法與draw方法有什麼不同
paint()
是在Container類中的.
每當容器更新(調用repaint方法)
repaint()方法調用update()然後update()方法就會調用paint()方法。java是這么設計的這么設計可以實現雙緩沖。
至於這個你現在不用理解。只要理解
paint()
是繪制你這個容器
需要繪制的畫面就行了。draw什麼什麼方法
在Graphics類中。
draw方法就是繪制一些具體的東西。
舉個簡單的例子
如果你在一個Container類中
重寫了paint(Graphics
g)
{
g.draw什麼什麼
g.draw什麼
}
這樣你的容器裡面就有了你畫的東西了。