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