gpt4 book ai didi

java - 停止鼠标移动

转载 作者:行者123 更新时间:2023-12-01 11:36:39 24 4
gpt4 key购买 nike

我想知道如何阻止 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();

}
}

最佳答案

您可以创建一个 boolean 值来切换它是否处于绘图状态。您将 boolean 命名为 isDrawingMode

所以当你点击鼠标时..你把它设置为 false,如果你再次点击它,它就会变成 true;

您所要做的就是在单击鼠标时切换boolean isDrawingMode

所以你的mousemoved监听器看起来像这样

public void mouseMoved(MouseEvent e) {

if (!isDrawingMode) return; //if isDrawingMode is false, it will not trigger to draw
Point point = e.getPoint();
pointList.add(point);

repaint();

}

关于java - 停止鼠标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29909680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com