50,550
社区成员
发帖
与我相关
我的任务
分享
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import javax.swing.Icon;
import javax.swing.plaf.IconUIResource;
@SuppressWarnings("serial")
class RotateIcon extends IconUIResource {
private int degree;
public RotateIcon(Icon icon, int degree) {
super(icon);
this.degree = degree;
}
public void paintIcon(Component c, Graphics g, int x, int y) {
Graphics2D g2d = (Graphics2D) g;
// 获取当前的坐标系状态
AffineTransform atf = g2d.getTransform();
AffineTransform clone = (AffineTransform) atf.clone();
// 以原始Icon的中心点为中心进行坐标系旋转
atf.rotate(Math.PI / 180 * degree, x + getIconWidth() / 2, y + getIconHeight() / 2);
g2d.setTransform(atf);
// 绘制
super.paintIcon(c, g, x, y);
// 重置坐标系
g2d.setTransform(clone);
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import javax.swing.*;
public class SwingApplet extends JApplet {
public void init(){
getContentPane().setLayout(new BorderLayout());
//getContentPane().setSize(373,432);
final JLabel label1=new JLabel();
final JLabel label2=new JLabel();
final JLabel label3=new JLabel();
final JLabel label4=new JLabel();
final JLabel label5=new JLabel();
final JLabel label6=new JLabel();
final JLabel label7=new JLabel();
final JLabel label8=new JLabel();
final JLabel label9=new JLabel();
//label.setBackground(Color.black);
//final Icon cn1 = new ImageIcon(new File( "1.JPG ").getAbsolutePath());
final Icon icon=new ImageIcon( "1.JPG");
//System.out.println(cn1);
//System.out.println(r8);
label5.setIcon(icon);
//System.out.print(label8);
// String urlString="F://My eclipse//RotateImage//src//test.jpg";
// JLabel label=new JLabel(new ImageIcon(urlString));
//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
pane.setBackground(Color.yellow);
//pane.setSize(373,432);
GridLayout family = new GridLayout(3,3,0,0);
pane.setLayout(family);
pane.add(label1);
pane.add(label2);
pane.add(label3);
pane.add(label8);
pane.add(label4);
pane.add(label5);
pane.add(label6);
pane.add(label7);
pane.add(label8);
pane.add(label9);
Panel pl=new Panel();
Button btn1=new Button("九宫格");
pl.setLayout(new FlowLayout(FlowLayout.LEFT));
pl.add(btn1);
getContentPane().add("North",pl);
getContentPane().add("Center",pane);
setVisible(true);
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//ImageIcon icon = new ImageIcon(ImageIO.read(new File("src/test.jpg")));
RotateIcon r1 = new RotateIcon(icon, 180);
RotateIcon r2 = new RotateIcon(icon, 90);
RotateIcon r3 = new RotateIcon(icon, 180);
RotateIcon r4 = new RotateIcon(icon, 270);
RotateIcon r6= new RotateIcon(icon, 270);
RotateIcon r7 = new RotateIcon(icon, 180);
RotateIcon r8 = new RotateIcon(icon, 90);
RotateIcon r9 = new RotateIcon(icon, 180);
label1.setIcon(r1);
label2.setIcon(r2);
label3.setIcon(r3);
label4.setIcon(r4);
label6.setIcon(r6);
label7.setIcon(r7);
label8.setIcon(r8);
label9.setIcon(r9);
}
});
}
/*
public void stop(){
}*/
}