作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个可以徒手绘制的程序。我创建了一个点数组,它保存了鼠标的当前点。问题是当我释放鼠标然后在另一个位置再次按下它时,它会在释放点和按下点之间画线。我应该添加或更改什么?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Mouse extends JPanel implements MouseListener, MouseMotionListener {
private int index = 0;
private Point[] arr = new Point[100000];
public Mouse(String name) {
super();
index = 0;
this.addMouseListener(this);
this.addMouseMotionListener(this);
JFrame fr = new JFrame(name);
fr.add(this);
fr.setSize(500, 500);
setBackground(Color.green);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setVisible(true);
}
public void paintComponent(Graphics g) {
super.paintComponents(g);
for (int i = 0; i < index - 1; i++)
g.drawLine(arr[i].x, arr[i].y, arr[i + 1].x, arr[i + 1].y);
}
public void mouseDragged(MouseEvent e) {
arr[index] = new Point(e.getX(), e.getY());
index++;
System.out.println(index);
repaint();
}
public void mousePressed(MouseEvent e) {
arr[index] = new Point(e.getX(), e.getY());
index++;
System.out.println(index);
repaint();
}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseMoved(MouseEvent e) {}
public static void main(String[] args) {
Mouse mouse = new Mouse("Mouse");
}
}
最佳答案
像这样实现 mouseReleased 方法:
public void mouseReleased(MouseEvent e)
{
arr = new Point[100000];
index = 0;
}
这将使它按照您的预期工作。
关于java - 自由手绘Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20177596/
我是一名优秀的程序员,十分优秀!