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