hallo,
ich will in swing mit einem "gummiband" ein rechteck zeichnen, welches dass beim loslassen mit einer farbe ausgefüllt wird. dis klappt und ist so realisiert:
das problem ist, dass bei "mouseDragged" immer das rechteck weiß vogezeichnet wird, sodass der gummiband effekt entsteht. befindet sich auf der zeichenfläche alleridngs schon ein ausgefülltes rechteck, so bleiben die weißen "zwischenzeichnungen" auf dem ausgefüllten rechteck zurück.:
wie lässt sich dies verhindern?
gruß
bastian
ich will in swing mit einem "gummiband" ein rechteck zeichnen, welches dass beim loslassen mit einer farbe ausgefüllt wird. dis klappt und ist so realisiert:
Code:
public void mouseReleased(MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
fillRect(Color.black);
}
....
....
....
public void mouseDragged(MouseEvent evt) {
paintRectangle(Color.white);
x2 = evt.getX();
y2 = evt.getY();
paintRectangle(Color.black);
}
private void paintRectangle(Color color) {
xPoints = new int[] { x1, x2, x2, x1 };
yPoints = new int[] { y1, y1, y2, y2 };
g2d.setColor(color);
g2d.drawPolygon(xPoints, yPoints, 4);
repaint();
}
private void fillRect(Color color) {
xPoints = new int[] { x1, x2, x2, x1 };
yPoints = new int[] { y1, y1, y2, y2 };
g2d.setColor(color);
g2d.fillPolygon(xPoints, yPoints, 4);
repaint();
}
...
...
...
das problem ist, dass bei "mouseDragged" immer das rechteck weiß vogezeichnet wird, sodass der gummiband effekt entsteht. befindet sich auf der zeichenfläche alleridngs schon ein ausgefülltes rechteck, so bleiben die weißen "zwischenzeichnungen" auf dem ausgefüllten rechteck zurück.:
wie lässt sich dies verhindern?
gruß
bastian