我正在尝试用Java Swing绘制线条。目标是在面板内打开图像并在该图像上绘制线条。当我尝试画一个单线并拖动鼠标,我得到这个行为:用Java swing绘制一条线绘制多条线
我的代码:
// Somewhere in the code:
imgLabel= new JLabel(new ImageIcon(buffImage)); // buffImage is a BufferedImage
...
Point point1;
Point point2;
Line2D line2d;
public void draw() {
Graphics2D g1 = this.buffImage.createGraphics();
g1.setRenderingHint(enderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g1.setColor(Color.RED);
g1.setStroke(new BasicStroke(1.5f));
if (point1 != null && point2 != null) {
g1.draw(line2d);
this.imgLabel.repaint();
}
}
class ImageMouseListener extends MouseAdapter {
@Override
public void mousePressed(MouseEvent me) {
point1 = me.getPoint();
}
@Override
public void mouseDragged(MouseEvent me) {
point2 = me.getPoint();
line2d = new Line2D.Double(point1, point2);
draw();
}
}
寻找mouseDragged尝试将其更改为mouseReleased – JajaDrinker
我仍然需要使用mouseDragged方法才能在绘制它时看到该行。 – Med
我真的不明白你真正想要的东西吗?你想看到被拖动的线,只画出最后一行是吗? – JajaDrinker