Unsere bisherige Version krankt noch daran, dass das Löschen der Linien in der Hintergrundfarbe auch andere Linien beeinflusst.
Abhilfe schafft hier der XOR-Zeichenmodus von Java:
Statt dem Setzen der Hintergrundfarbe als aktive Farbe durch
grGrafik.setColor(getBackground());
wird jetzt jeweils der XOR-Modus über
grGrafik.setXORMode(getBackground());
gesetzt.
Nach Abschluss des Löschens und Neuzeichnens muss dann wieder der normale Zeichenmodus über
grGrafik.setPaintMode();
eingestellt werden.
Damit ergibt sich der Linienzeichenmodus zu folgendem Code:
case 2:
{
  grGrafik.setXORMode(getBackground());
  grGrafik.drawLine(xStart,yStart,xNeu,yNeu);
  grGrafik.setColor(farbe);
  grGrafik.drawLine(xStart,yStart,x,y);
  break;
}
Nach dem switch-Konstrukt ist dann noch vor dem Neusetzen von xNeu und yNeu wieder der paintModus einzustellen:
Ergänzen Sie entsprechend ihr Programm im Linien-, Rechteck- und Ellipsenmodus.
Jetzt soll natürlich noch die Frage geklärt werden, wie der XOR-Modus funktioniert.
© Ralph-Erich Hildebrandt, 04. Februar 2007