G
Guest
Gast
Hallo,
ich schreibe gerade an einem Bildbearbeitungsprogramm und habe folgendes Problem:
Meine Oberfläche, die aufgerufen wird, zeigt jeweils ein Bild an und dazu etwa 10 Buttons mit verschiedenen Funktionen (graumachen, heller, etc.)
Viele dieser Funktionen habe ich mit Threads realisiert, da ich wollte, dass der Prozess stufenweise abläuft, dh. die Pixel nacheinander verändert werden und nicht alle auf einmal.
Nun habe ich das Problem, dass die Funktionen zwar funktionieren, ich aber das Bild völlig durcheinander bringe, wenn ich mehrere Buttons schnell hintereinander klicke. (Es bekommt dann Streifen, sieht ab der Mitte anders aus, oder ähnliches)
Für die Funktionen, die mit Threads arbeiten, habe ich immer jeweils eine Klasse geschrieben und dort Runnable implementiert, dh. es nützt mir ja auch nichts, wenn ich die Methoden synchronized mache, da sie ja immer in verschiedenen Klassen sind..
Nun habe ich mir überlegt, dass ich für den Zeitraum, in dem ein Button angeklickt wurde, evtl. die anderen Buttons eben "nicht-anklickbar" mache, dh. dass ein Klick keine Wirkung zeigt, solange nicht die vorherige Funktion ausgeführt wurde
Wie geht sowas?
Und hat evtl. jemand eine andere Idee?
Vielen Dank!
ich schreibe gerade an einem Bildbearbeitungsprogramm und habe folgendes Problem:
Meine Oberfläche, die aufgerufen wird, zeigt jeweils ein Bild an und dazu etwa 10 Buttons mit verschiedenen Funktionen (graumachen, heller, etc.)
Viele dieser Funktionen habe ich mit Threads realisiert, da ich wollte, dass der Prozess stufenweise abläuft, dh. die Pixel nacheinander verändert werden und nicht alle auf einmal.
Nun habe ich das Problem, dass die Funktionen zwar funktionieren, ich aber das Bild völlig durcheinander bringe, wenn ich mehrere Buttons schnell hintereinander klicke. (Es bekommt dann Streifen, sieht ab der Mitte anders aus, oder ähnliches)
Für die Funktionen, die mit Threads arbeiten, habe ich immer jeweils eine Klasse geschrieben und dort Runnable implementiert, dh. es nützt mir ja auch nichts, wenn ich die Methoden synchronized mache, da sie ja immer in verschiedenen Klassen sind..
Nun habe ich mir überlegt, dass ich für den Zeitraum, in dem ein Button angeklickt wurde, evtl. die anderen Buttons eben "nicht-anklickbar" mache, dh. dass ein Klick keine Wirkung zeigt, solange nicht die vorherige Funktion ausgeführt wurde
Wie geht sowas?
Und hat evtl. jemand eine andere Idee?
Vielen Dank!