Swing で画像を徐々に回転するにはどうすればよいですか?
Swing には、画像を回転するいくつかの方法が用意されています。 1 つの方法は、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 が表示されると、回転アニメーションが自動的に開始されます。
以上がSwing で画像を徐々に回転させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。