前言
上一篇我们共同学习了画笔生成图像的一些操作,那么我们今天来学习一下鼠标在画板上点击事件的操作。
一、画笔的点击操作
首先我们来了解整个操作流程,我们用鼠标在画板上点击生成点的操作,首先我们需要一个数组来记录我们点击的每一个点的位置,还需要一个鼠标点击的监听器,当我们的鼠标点击时将我们点击位置存入数组并调用重新画笔,画笔时检测数组的下一个是否还有点,如果有就在画板上显示出这个点。
二、代码示例
1.鼠标生成点
代码如下(示例):
TestMouseListener类
public class TestMouseListener {
public static void main(String[] args) {
new MyFrame("我的画板");
}
}
MyFrame类
class MyFrame extends Frame{
//画画需要画笔,需要监听鼠标当前位置,需要集合来存储这个点。
ArrayList points;
public MyFrame(String title){
super(title);
setBounds(450,200,600,600);
//存鼠标点的点
points = new ArrayList<>();
setVisible(true);
//添加鼠标监听器
this.addMouseListener(new MyMouseListener());
}
//画板
@Override
public void paint(Graphics g) {
//画画,监听鼠标事件,使用迭代器。
Iterator iterator = points.iterator();
while (iterator.hasNext()){
Point point = (Point) iterator.next();
g.setColor(Color.blue);
g.fillOval(point.x,point.y,10,10);
}
}
//添加点到界面上
public void addPaint(Point point){
points.add(point);
}
//鼠标监听器,适配器模式
private class MyMouseListener extends MouseAdapter {
//鼠标 按下 弹起 按住不放
@Override
public void mousePressed(MouseEvent e) {
//我们点的时候在界面上产生一个点。
//点的位置就是我们鼠标点的位置
MyFrame myFrame = (MyFrame) e.getSource();
myFrame.addPaint(new Point(e.getX(),e.getY()));
//每次点击鼠标都重新画一遍
myFrame.repaint();
}
}
}
运行结果: