gpt4 book ai didi

java - 需要旋转 jpg 图像的帮助

转载 作者:行者123 更新时间:2023-12-01 18:15:42 25 4
gpt4 key购买 nike

任何人都可以帮我弄清楚如何让我的 JButton (jbt1) 旋转我的图像(jpg 文件 (wheelof.jpg))一段设定的时间吗?我已经尝试解决这个问题有一段时间了,但没有找到任何建议。谢谢

 import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;

import javax.swing.*;



public class Game extends JFrame implements ActionListener{

private JButton jbt1 = new JButton("SPIN!");
private ImageIcon image;
private JLabel label1;
private GraphicsPanel canvas = new GraphicsPanel();

public Game(){
JPanel control = new JPanel();
control.setLayout(new FlowLayout(2,2,2));
control.add(jbt1);
ImageIcon image = new ImageIcon("wheelof.jpg");
label1 = new JLabel(image);
control.add(label1);
add(canvas, BorderLayout.CENTER);
add(control, BorderLayout.EAST);
jbt1.addActionListener(new RotateListener());
}//game()

public static void main(String[] args) {
JFrame gui = new Game();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setVisible(true);
gui.setSize(800,1000);
gui.setTitle("Wheel of Fortune");
}//main()


class RotateListener implements ActionListener{
public void actionPerformed(ActionEvent arg0) {


}
}

class GraphicsPanel extends JPanel implements ActionListener{

}//graphicsPanel

}//class game

最佳答案

  1. 要旋转图像,请考虑使用 AffineTransform。
  2. getRotateInstance(double theta, double anchorx, double anchory) AffineTransform 方法在这里可以很好地工作。
  3. 如果您要旋转轮子,则可以使用 AffineTransform 创建多个旋转图像,然后将它们存储在 ArrayList<ImageIcon> 中。 (实际上,如果您对接口(interface)进行编码,则会出现 List<Icon> )。
  4. 要旋转一段时间然后停止 - 使用 Swing 计时器。
  5. 如果您选择 ImageIcon 路线,您可以在 JLabel 中显示图标,并通过简单地调用 myImageLabel.setIcon(myIconList.get(index)) 在计时器的 ActionListener 中交换它们。在 JLabel 上。
  6. 您需要有一个 int 索引字段来执行此操作,每次调用 actionPerformed(...) 时都会在计时器中递增该索引字段。 ,即index++ ,并且在使用之前修改计时器中 ArrayList 的大小,index %= myIconList.size();这样当您尝试从只有 10 个项目的 ArrayList 获取项目时,就不会传入索引 20。

关于java - 需要旋转 jpg 图像的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29723961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com