【发布时间】:2015-07-06 17:29:36
【问题描述】:
我想知道如何阻止 mousedMoved 被解雇。我一直在谷歌搜索,但找不到答案。有办法吗?我正在使用 eclipse 并通过了 mouseevent 方法,但找不到任何东西。
public class Drawing extends JPanel {
private ArrayList<Point> pointList;
private int counter = 0;
public Drawing() {
setLayout(new FlowLayout());
setBackground(Color.white);
pointList = new ArrayList<Point>();
addMouseListener(new MouseTrackerListener());
}
public void paintComponent(Graphics pen) {
super.paintComponent(pen);
for (int i = 0; i < pointList.size(); i++) {
Point p = pointList.get(i);
pen.fillOval(p.x, p.y, 10, 10);
}
}
private class MouseTrackerListener extends MouseInputAdapter {
public void mouseClicked(MouseEvent e) {
counter++;
if (counter % 2 != 0) {
addMouseMotionListener(new MouseTrackerListener());
} else {
System.out.println("Hi");
}
}
public void mouseMoved(MouseEvent e) {
Point point = e.getPoint();
pointList.add(point);
repaint();
}
}
【问题讨论】:
-
别听了?
-
删除触发更新的
MouseMotionListener? -
给代码添加一个不执行的条件怎么样..所以即使它被触发了,它也不会执行监听器内部的代码?
-
@John3136 你这是什么意思?我是这个部分的新手对不起
-
@MadProgrammer 如何删除它? Idk 如何在它运行后停止它
标签: java mouseevent