Java Reference
In-Depth Information
Zuletzt wird die vom Anwender gewählte Figur der ArrayList mit der add -Methode hin-
zugefügt und mit repaint ein Neuzeichnen der Zeichenfläche ausgelöst. Das Zurückset-
zen der Booleschen Variablen zeichnen verhindert, dass bei einem folgenden Mausklick
(ohne Ziehen) das Loslassen der Maustaste einen neuen Zeichenvorgang auslöst.
private void jPanelZeichenflaecheMouseDragged(MouseEvent evt) {
xabs = evt.getX();
yabs = evt.getY();
x2 = evt.getX() - x1;
y2 = evt.getY() - y1;
jPanelZeichenflaeche.repaint();
Graphics2D g2d = (Graphics2D) jPanelZeichenflaeche.getGraphics();
g2d.setColor(Color.black);
BasicStroke stil = new BasicStroke(
0.5f, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER);
g2d.setStroke(stil);
Rectangle2D.Float rechteck = new Rectangle2D.Float(x1, y1, x2, y2);
g2d.draw(rechteck);
if (Figur=='L') {
jTFPositionx2.setText(new Integer(xabs).toString());
jTFPositiony2.setText(new Integer(yabs).toString());
}else{
jTFPositionx2.setText(new Integer(x2).toString());
jTFPositiony2.setText(new Integer(y2).toString());
13
}
zeichnen = true;
}
Listing 13.16 Reaktion auf das Ereignis »mouseDragged«
Die Methode bestimmt zunächst wieder die absoluten Koordinaten der aktuellen Maus-
position und berechnet Breite und Höhe des aufgezogenen Rechtecks.
Um einen Eindruck über die Größe des aufgezogenen Rechtecks zu vermitteln, wird auf
der Zeichenfläche ein Rechteck gezeichnet, das aber nicht an die Methode paintCompo-
nent übermittelt wird. Damit beim Aufziehen des Rechtecks keine ausgefüllte schwarze
Fläche entsteht, wird bei jedem Auftreten von mouseDragged die Methode repaint des
Panels aufgerufen. Sie löscht gewissermaßen das zuvor gezeichnete Rechteck, bevor ein
Neues gezeichnet wird.
Search WWH ::




Custom Search