Ich will ein einfaches Zeichenprogramm erstellen, bei welchem man Linien und Rechtecke zeichnen kann (mithilfe der Maus). Dazu habe ich folgende Methoden erstellt:
Meine frage ist wie ich es schaffe dass das Rechteck bereits beim ziehen der Maus gezeichnet wird und sich die größe vom Rechteck verändert und erst beim auslassen der Maustaste das Rechteck dann effektiv gezeichnet wird. Ich habe bereits versucht in der Methode MouseDragged() die Methode dawRectangle() aufzurufen, dann wird zwar wie ich will das Rechteck beim ziehen der Maus gezeichnet, aber wenn man das Rechteck dann wieder kleiner zieht wird das effektive Rechteck (beim auslassen der Maustaste) durch das andere Rechteck was beim ziehen ensteht überschrieben (weil es größer ist).
Code:
public void mousePressed(MouseEvent e){
pressedX = e.getX();
pressedY = e.getY();
}
public void mouseDragged(MouseEvent e){
releasedX = e.getX();
releasedY = e.getY();
}
public void mouseReleased(MouseEvent e){
gc = canvas.getGraphicsContext2D();
gc.setFill(Color.BLUE);
drawRectangle(gc);
}
private void drawRectangle(GraphicsContext gc){
gc.setLineWidth(10);
gc.fillRect(pressedX,
pressedY,
releasedX - pressedX,
releasedY - pressedY);
}
Meine frage ist wie ich es schaffe dass das Rechteck bereits beim ziehen der Maus gezeichnet wird und sich die größe vom Rechteck verändert und erst beim auslassen der Maustaste das Rechteck dann effektiv gezeichnet wird. Ich habe bereits versucht in der Methode MouseDragged() die Methode dawRectangle() aufzurufen, dann wird zwar wie ich will das Rechteck beim ziehen der Maus gezeichnet, aber wenn man das Rechteck dann wieder kleiner zieht wird das effektive Rechteck (beim auslassen der Maustaste) durch das andere Rechteck was beim ziehen ensteht überschrieben (weil es größer ist).