hallo zusammen
ich hab da mal wieder ein problem und zwar folgendes:
ich muss ein programm schreiben, bei welchem ich auf eine der flächen auf diesem bild
anklicken muss, dann ne farbe für die änderung angeben und dann sollte das programm die fläche nach der gewünsten farbe einfärben.
dies ist mein code, in meinen augen perfekt
aber wenn ich nun das ganze ausprobier funktionierts bei einigen flächen, bei anderen bekomme ich jedoch fehler und zwar superviele, also das kompilieren geht. aber eben beim ausführen/testen gehts nicht mehr. es gibt nur streifen, welche die farbe ändern und mitten drin brichts ab.
kann mir jemand helfen?
ich hab da mal wieder ein problem und zwar folgendes:
ich muss ein programm schreiben, bei welchem ich auf eine der flächen auf diesem bild
anklicken muss, dann ne farbe für die änderung angeben und dann sollte das programm die fläche nach der gewünsten farbe einfärben.
Java:
import java.awt.Color;
import ch.unibas.informatik.cs101.ImageWindow;
import ch.unibas.informatik.cs101.ImageWindowMouseListener;
import ch.unibas.informatik.cs101.KeyListener;
public class RecursiveFill {
private static ImageWindow w=null;
static void Fueller(int x, int y, Color fuell, Color rand){
Color current=w.getPixel(x, y);
if ( (current.equals(rand)) && !(current.equals(fuell)) ){
w.setPixel(x, y, fuell.getRed(), fuell.getGreen(), fuell.getBlue());
Fueller(x+1, y, fuell, rand);
Fueller(x-1, y, fuell, rand);
Fueller(x, y+1, fuell, rand);
Fueller(x, y-1, fuell, rand);
}
w.redraw();
}
public static void main(String[] args) {
w=new ImageWindow(500,500);
w.openWindow("forms", 500, 0);
w.loadImage("forms.png");
w.redraw();
while (w.isWindowOpen()) {
if (w.mousePressed()) {
int mouseX=w.getMouseXPos();
int mouseY=w.getMouseYPos();
int r,g,b;
r=0; b=0; g=0;
if(op.equals("rot"))r=255;
if(op.equals("gruen"))g=255;
if(op.equals("blau"))b=255;
Color fuell=new Color(r, g, b);
Color rand=w.getPixel(mouseX, mouseY);
Fueller(mouseX, mouseY, fuell, rand);
w.redraw();
}
w.pause(10);
}
}
}
dies ist mein code, in meinen augen perfekt
aber wenn ich nun das ganze ausprobier funktionierts bei einigen flächen, bei anderen bekomme ich jedoch fehler und zwar superviele, also das kompilieren geht. aber eben beim ausführen/testen gehts nicht mehr. es gibt nur streifen, welche die farbe ändern und mitten drin brichts ab.
kann mir jemand helfen?