Maison >Java >javaDidacticiel >Comment faire pivoter progressivement une image dans Swing ?
Comment faire pivoter une image progressivement dans Swing ?
Swing propose plusieurs façons de faire pivoter une image. Une approche consiste à utiliser la classe AffineTransform, qui vous permet d'appliquer une transformation de rotation à une image.
Pour faire pivoter une image progressivement, vous pouvez utiliser une minuterie pour mettre à jour l'angle de rotation au fil du temps. Voici un exemple de la façon de procéder :
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(); } }
Ce code crée un JPanel qui affiche une image. La méthode paintComponent utilise la classe AffineTransform pour faire pivoter l'image autour de son centre selon l'angle spécifié. L'objet Timer est utilisé pour mettre à jour l'angle de rotation au fil du temps.
Vous pouvez ajouter le RotateImagePanel à votre application Swing en l'ajoutant à un JFrame ou à un autre conteneur. L'animation de rotation démarrera automatiquement lorsque le JFrame sera affiché.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!