Swing에서 이미지를 점진적으로 회전하는 방법은 무엇입니까?
Swing에서는 이미지를 회전하는 여러 가지 방법을 제공합니다. 한 가지 접근 방식은 이미지에 회전 변환을 적용할 수 있는 AffineTransform 클래스를 사용하는 것입니다.
이미지를 점진적으로 회전하려면 타이머를 사용하여 시간 경과에 따라 회전 각도를 업데이트할 수 있습니다. 이를 수행하는 방법의 예는 다음과 같습니다.
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(); } }
이 코드는 이미지를 표시하는 JPanel을 생성합니다. PaintComponent 메소드는 AffineTransform 클래스를 사용하여 지정된 각도만큼 중심을 중심으로 이미지를 회전합니다. Timer 개체는 시간이 지남에 따라 회전 각도를 업데이트하는 데 사용됩니다.
RotateImagePanel을 JFrame이나 다른 컨테이너에 추가하여 Swing 애플리케이션에 추가할 수 있습니다. JFrame이 표시되면 회전 애니메이션이 자동으로 시작됩니다.
위 내용은 스윙에서 이미지를 점진적으로 회전하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!