Heim > Java > javaLernprogramm > Wie kann man ein Bild schrittweise im Swing-Modus drehen?

Wie kann man ein Bild schrittweise im Swing-Modus drehen?

Susan Sarandon
Freigeben: 2024-12-06 04:39:31
Original
1011 Leute haben es durchsucht

How to Gradually Rotate an Image in Swing?

Wie drehe ich ein Bild schrittweise in Swing?

Swing bietet mehrere Möglichkeiten, ein Bild zu drehen. Ein Ansatz besteht darin, die AffineTransform-Klasse zu verwenden, mit der Sie eine Rotationstransformation auf ein Bild anwenden können.

Um ein Bild schrittweise zu drehen, können Sie einen Timer verwenden, um den Rotationswinkel im Laufe der Zeit zu aktualisieren. Hier ist ein Beispiel dafür:

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;

import javax.swing.JPanel;
import javax.swing.Timer;

public class RotateImagePanel extends JPanel implements ActionListener {

    private Image image;
    private AffineTransform transform;
    private double angle;
    private Timer timer;

    public RotateImagePanel(Image image) {
        this.image = image;
        transform = new AffineTransform();
        angle = 0;
        timer = new Timer(100, this);
        timer.start();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.translate(getWidth() / 2, getHeight() / 2);
        g2.rotate(angle, image.getWidth(null) / 2, image.getHeight(null) / 2);
        g2.drawImage(image, transform, null);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        angle += Math.PI / 100;
        repaint();
    }
}
Nach dem Login kopieren

Dieser Code erstellt ein JPanel, das ein Bild anzeigt. Die Methode paintComponent verwendet die Klasse AffineTransform, um das Bild um den angegebenen Winkel um seinen Mittelpunkt zu drehen. Das Timer-Objekt wird verwendet, um den Drehwinkel im Laufe der Zeit zu aktualisieren.

Sie können das RotateImagePanel zu Ihrer Swing-Anwendung hinzufügen, indem Sie es einem JFrame oder einem anderen Container hinzufügen. Die Rotationsanimation startet automatisch, wenn der JFrame angezeigt wird.

Das obige ist der detaillierte Inhalt vonWie kann man ein Bild schrittweise im Swing-Modus drehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage