In meinem ImageJ Plugin zeige ich eine GenericDialog, die eine Reihe von Bildern, die an ihm hat, wie folgt aus:ImageJ: Wie bekomme ich Image in GenericDialog, um es neu zu streichen?
// global:
ColorProcessor cp = new ColorProcessor(50, 50); // new ColorProcessor
ImagePlus ip;
public void run(ImageProcessor ip) {
GenericDialog gdiag = new GenericDialog("Foo"); // new Dialolg
gdiag.addDialogListener(this); // adding Listener
gdiag.addMessage("Lorem Ipsum"); // adding Message
gdiag.addSlider("Bar", 1, 360, 1); // adding Slider
Color c = new Color(r, g, b);
cp.setColor(tarColor);
cp.fill();
ip = new ImagePlus("fooimg", cp);
gdiag.addImage(ip);
gdiag.showDialog();
}
Ich halte einen Verweis auf die Colorprocessor und der Imageplus. Wenn der Schieberegler im GenericDialog verschoben wird, wird das Ereignis dialogItemChanged() ausgelöst. Hier ändere ich die Farbe auf dem Bild:
Jetzt, wenn ich dies ausführen, wird die Farbe im Bild nicht aktualisiert. Nur wenn ich die Größe des Dialogfelds ändere und den Rand über das Bild verschiebe, wird die Farbe korrekt angezeigt.
Wie kann ich den Dialog zum Repaint zwingen?
Ich versuchte so viele verschiedene Updates & Repaints, ich bin out Optionen.
Haben Sie versucht, 'ip.updateAndDraw()'? Hast du 'gd.validate() versucht? gd.repaint(); '? – ctrueden