我有一个设计项目,我应该使用鼠标在 Java 中绘制之字形。首先,我使用 MouseListener 并在 mouseClicked 方法中收集用户点击的所有点:
public void mouseClicked(MouseEvent e){
if(isAbleToDraw){
corners[points]=e.getPoint();
points++;
repaint();
}
}
这里我使用 boolean 值“isAbleToDraw”来检查用户是否单击了“绘图”或“停止绘图”按钮。 然后,我像这样绘制锯齿形:
super.paintComponent(graph);
Graphics2D g = (Graphics2D) graph;
g.drawLine(corners[i].x, corners[i].y, corners[i+1].x, corners[i+1].y);
最后,问题是,当我在绘制锯齿形后单击“停止绘制”按钮,然后再次单击“绘制”按钮后,它一直从它离开的最后一点开始绘制线条。换句话说,我无法绘制 2 个不同的锯齿形。
关于如何解决这个问题有什么想法吗?
最佳答案
如果您希望用户能够绘制多个之字形并在屏幕上同时看到它们,那么您可以使用点数组的Collection
。每次用户单击“绘制”按钮时,您都会向集合中添加一个新数组,并使该新数组成为 Activity 数组。在您的 mouseClicked
中,您可以将用户点击的点添加到 Activity 点数组中,并且当您绘制组件时,而不是仅仅绘制一个之字形,遍历数组集合并绘制它们全部。
关于java - 在 Java 中绘制之字折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7690083/