Ich versuche eine Schachfigur in einem Board zu animieren. Zuerst habe ich ein java.util.Timer-Objekt erstellt, das "scheduleAtFixedRate" eine TimerTask als Proxy-Funktion implementiert hat. Also habe ich eine Aufzeichnung des zu bewegenden Stücks (Stück-Bewegung-Aufzeichnung) und wenn es angemessen ist (wenn der Benutzer das Stück mit der Maus bewegt), sollte die TimerTask-Proxy-Funktion getestet werden, wenn der Datensatz nicht Null ist und die Stück- Bewegungsfunktion. Die Stückbewegungsfunktion aktualisiert nur die X- und Y-Koordinaten des Stücks gemäß einem zuvor berechneten Vektor. Ich habe eine zusätzliche Uhr auf die Stück-Bewegungs-Aufzeichnung gelegt, so dass sie, wenn sie sich ändert, die Tafel (Leinwand) neu streichen sollte. Die Malmethode testet, ob diese Stück-Bewegungs-Aufzeichnung nicht Null ist, um sie zu malen.Wie macht man Animation mit Swing und Clojure?
Das Problem ist, dass die Animation nicht angezeigt wird. Das Stück springt einfach auf das Schicksal, ohne die Bewegung dazwischen. Es gibt ein Problem mit dem Animationsschema ou gibt es einen besseren Weg, es zu tun?
Sie haben Recht, der Zug funktioniert jetzt, ist aber immer noch nicht weich genug, würde die Schwungzeiten mehr prüfen. Danke für deine Antwort. –
Sie müssen ** ** ** ** ** Swing Timer ** nicht verwenden, um Ihre Komponenten zu animieren. Sie können einen Timer mit dem * was auch immer * Dienstprogramm einrichten, und dann die Ausführung an EDT mit ** SwingUtilities.invokeLater ** (oder ** invokeAndWait **) übergeben. – SkyDan