JAVA实现图片旋转的一个很好的例子

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
}
//MyPanel.java
import java.awt.*;
import javax.swing.*;
class MyPanel extends JPanel {
private double xuanzhuan = 0; private Image image;
public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.fillRect(0, 0, 400, 400); g2d.rotate(xuanzhuan, 200, 200); image = new ImageIcon("src/test.jpg") .getImage(); g2d.drawImage(image, 75, 75, this); g.dispose();
}
public Image getImage() { return image;
}
public double getXuanzhuan() { return xuanzhuan;
}
public void setXuanzhuan(double xuanzhuan) { this.xuanzhuan = xuanzhuan;
//DrawImage.java
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.*;
public class DrawImage implements ActionListener {
}
}
test.jpg 图片放在 src 文件夹下(如下,图片大小 3Leabharlann Baidu0*300)
JFrame frame; // 主窗体 MyPanel panel; JButton rotate; // 控制旋转的按钮
public DrawImage() { frame = new JFrame("绘图 Demo"); frame.setSize(400, 500); frame.setAlwaysOnTop(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(null); frame.setVisible(true);
panel = new MyPanel(); panel.setBounds(0, 0, 400, 400); frame.getContentPane().add(panel);
rotate = new JButton("逆旋"); // 每按一次逆时针旋转 90 度 rotate.setBounds(5, 405, 390, 90); frame.getContentPane().add(rotate); rotate.addActionListener(this);
}
public static void main(String[] args) { new DrawImage();
}
public void actionPerformed(ActionEvent e) { panel.setXuanzhuan(panel.getXuanzhuan() - Math.PI/2); panel.repaint();
相关文档
最新文档