写一个画图板,在上面画线,点,面
使用工具:eclipse
涉及内容:界面,接口事件
想要在画图板上画线,点,面,我们需要识别鼠标在画图板上的操作
定义DrawListener事件处理类,该类实现MouseListener鼠标事件接口
MouseListener鼠标事件接口其中含有处理对应鼠标动作的方法:
处理鼠标按下:mousePressed
处理鼠标松开:mouseReleased
处理鼠标点击:mouseClicked
处理鼠标进入:mouseEntered
处理鼠标离开:mouseExited
DrawListener继承MouseListener,,虽然只需要要用到按下和松开的方法,但是却必须重写MouseListener的全部抽象方法
以按下为例,按下点的方法中的参数MouseEvent e记录了鼠标操作的信息,包括操作时鼠标的坐标
画一条线,需要得到线的两边点的坐标,然后调用画图板画笔的drawLine方法
//x1,y1为按下点坐标
int x1,y1;
//x2,y2为释放点坐标
int x2,y2;
public void mousePressed(MouseEvent e)
{
//e.getX()和e.getY()返回坐标
int x1=e.getX();
int y1=e.getY();
}
public void mouseReleased(MouseEvent e)
{
int x2=e.getX();
int y2=e.getY();
}
//drawLine参数是两个点的坐标
g.drawline(x1,y1,x2,y2);
这样画好一条线
想要画一个点则只需要那个点的坐标,并使用drawLine,传入的两个参数就可以,在两个相同位置之间画一条线,就是画一个点
画图形比如圆,矩形,则要调用画图板画笔的其他方法
圆:drawOval(x, y, width, height),此圆为以(x,y)为左上角顶点,以width为宽,以height为高的 矩形的内切圆
矩形:drawRect(x, y, width, height),以(x,y)为左上角顶点,以width为宽,以height为高的 矩形
附上代码,这个代码可以选择需要画的类型,另外,没有内置函数可以画任意多边形,需要自己写,里面有写好的任意多边形代码,需要用到鼠标点击mouseClicked,效果和电脑自带的画图板效果一样,逻辑不复杂,可以自己尝试写写,其中接口ActionListener请见《Java接口事件》
import java.awt.Dimension;
import java.awt