java绘图板_Java中的画图板简单功能实现
首先畫圖板就是用到了我們之前所學(xué)的知識,并不是很難,如果要構(gòu)建一些復(fù)雜的功能,還需進(jìn)一步學(xué)習(xí)。畫圖板所需要的API:
JFrame //窗體 ; JPanel //面板 ;JButton //按鈕
ActionListener //動作監(jiān)聽器 ;MouseListener //鼠標(biāo)監(jiān)聽器
首先我們定義一個(gè)畫圖板界面,用來裝許多各種功能的組件
具體做法是:建立一個(gè)畫圖類然后構(gòu)建一個(gè)畫圖對象,之后就寫畫圖對象的方法。
這個(gè)方法包含JFrame、JPanel、JButton組件及其對象,然后設(shè)置窗體的一些參數(shù),如大小、標(biāo)題、窗體大小不可改變、窗體可關(guān)閉。我的做法是構(gòu)建兩個(gè)面板對象,一個(gè)面板用來裝圖形模塊,一個(gè)面板用來裝顏色模塊,構(gòu)建三個(gè)圖形按鈕“圓形”、“直線”和“矩形”,再構(gòu)建六個(gè)顏色按鈕,分別是“紅”“黃”“藍(lán)”“紫”“綠”“橙”“粉紅”,由于Java中面板默認(rèn)的是流式布局,窗體默認(rèn)邊框布局,因此正符合我的心意不需要做太大的改動。接下來就是設(shè)置按鈕的背景顏色了,圖形按鈕設(shè)置成白色,顏色按鈕就設(shè)置成它向?qū)?yīng)的顏色,將圖形按鈕放進(jìn)面板一中,顏色按鈕放進(jìn)面板二中,窗體添加兩個(gè)面板。
接下來就是給每個(gè)按鈕裝監(jiān)聽器了,監(jiān)聽器要有兩個(gè)一個(gè)是鼠標(biāo)監(jiān)聽器MouseListener、一個(gè)是動作監(jiān)聽器ActionListener,而按鈕就只需添加動作監(jiān)聽器就行了,鼠標(biāo)監(jiān)聽器是用來畫圖形的,將按鈕事件傳遞到監(jiān)聽器類中。
Graphics g = jf.getGraphics(); //窗體調(diào)用畫筆
這里還需要注意的是邊框布局: BorderLayout,
窗體對象調(diào)用邊框布局器 jf.add(jpN,BorderLayout.NORTH);
東西 只能設(shè)置寬——X軸
南北 只能設(shè)置高——Y軸
中 其他方向上剩下的區(qū)域
監(jiān)聽器類中怎么做呢
public class listenter3 implements MouseListener,ActionListener
接下來就是之前說的重載抽象方法這里就是MouseListener和ActionListener
//得到按鈕的字符串
btnstr =e.getActionCommand();
//得到按鈕對象
if("".equals(btnstr)){
JButton btn = (JButton) e.getSource();
color = btn.getBackground();
g.setColor(color);
}
這里用了一個(gè)if語句,目的是如果按鈕對象上得到空的字符串,那么執(zhí)行得到按鈕對象,并且將調(diào)用按鈕對象的背景顏色的方法。
//定義兩個(gè)點(diǎn)的坐標(biāo)(x1,y1)(x2,y2)
int x1,x2,y1,y2;
//畫筆的傳遞
Graphics g;
//窗體的傳遞
JFrame jf;
//按鈕的傳遞
JButton b,a,c,d,f,h,i,j,k;
接下來的就是鼠標(biāo)事件中的mousePressed
//得到鼠標(biāo)按壓下去后的X、Y軸坐標(biāo)值
x1=e.getX();
y1=e.getY();
鼠標(biāo)事件中的mouseReleased
//得到鼠標(biāo)松開后的X、Y軸坐標(biāo)
x2=e.getX();
y2=e.getY();
//將得到的按鈕上的字符串與設(shè)定的字符串向?qū)Ρ?#xff0c;從而執(zhí)行不同的語句
if(btnstr.equals("直線")){
//畫直線
g.drawLine(x1, y1, x2, y2);
}else if(btnstr.equals("矩形")){
//畫圓
g.drawRect(Math.min(x1, x2), Math.min(y1, y2),Math.abs(x2-x1), Math.abs(y2-y1));
}else if(btnstr.equals("圓")){
//畫矩形
g.drawOval(Math.min(x1, x2), Math.min(y1, y2),Math.abs(x2-x1),Math.abs(y2-y1));
}
當(dāng)然,這個(gè)可以添加你想要的任何圖形,只要增加相關(guān)函數(shù)與按鈕就行了。
實(shí)現(xiàn)的效果圖如下
詳細(xì)代碼我就不一一羅列出來了。
總結(jié)
以上是生活随笔為你收集整理的java绘图板_Java中的画图板简单功能实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: java stringtoarray_j
 - 下一篇: java 事件分发线程_Java事件调度