Bagaimana untuk memutar imej secara beransur-ansur dalam Swing?
Swing menyediakan beberapa cara untuk memutar imej. Satu pendekatan ialah menggunakan kelas AffineTransform, yang membolehkan anda menggunakan penjelmaan putaran pada imej.
Untuk memutar imej secara beransur-ansur, anda boleh menggunakan Pemasa untuk mengemas kini sudut putaran dari semasa ke semasa. Berikut ialah contoh cara untuk melakukannya:
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(); } }
Kod ini mencipta JPanel yang memaparkan imej. Kaedah paintComponent menggunakan kelas AffineTransform untuk memutarkan imej di sekeliling pusatnya mengikut sudut yang ditentukan. Objek Pemasa digunakan untuk mengemas kini sudut putaran dari semasa ke semasa.
Anda boleh menambah RotateImagePanel pada aplikasi Swing anda dengan menambahkannya pada JFrame atau bekas lain. Animasi putaran akan bermula secara automatik apabila JFrame dipaparkan.
Atas ialah kandungan terperinci Bagaimana untuk Memutar Imej Secara Berperingkat dalam Swing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!