定义了一个Icon   icon=new   ImageIcon( "src/test.jpg "); 
想着把icon用在Label上,用之前想把icon翻转90度,能不能实现?
很着急、、、

解决方案 »

  1.   

    额~~~主要是想实现单击一个按钮,然后在四个Label上或是Button上显示出一个图片的四个翻转效果、、、、
    现在就是不知道如何在用一个图片之前就完成翻转效果
      

  2.   

    额~~~主要是想实现单击一个按钮,然后在四个Label上或是Button上显示出一个图片的四个翻转效果、、、、
    现在就是不知道如何在用一个图片之前就完成翻转效果
      

  3.   

    有个类叫 IconUIResource
    可以直接复用现有的 Icon ,然后根据不同角度,旋转坐标系,然后调用 Icon 的绘制函数
    得自己去实现一个定制的IconUIResource
      

  4.   


    @SuppressWarnings("serial")
    class RotateIcon extends IconUIResource { private int degree; public RotateIcon(Icon icon, int degree) {
    super(icon);
    this.degree = degree;
    } @Override
    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);
    }
    }
      

  5.   

    测试代码public class IconTest { /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
    ImageIcon icon = new ImageIcon(ImageIO.read(new File("icon.jpg")));
    JFrame frame = new JFrame();
    BorderLayout layout = new BorderLayout();
    Container container = frame.getRootPane();
    container.setLayout(layout);
    container.add(new JButton(new RotateIcon(icon, 0)), BorderLayout.SOUTH);
    container.add(new JButton(new RotateIcon(icon, 90)), BorderLayout.WEST);
    container.add(new JButton(new RotateIcon(icon, 180)), BorderLayout.NORTH);
    container.add(new JButton(new RotateIcon(icon, 270)), BorderLayout.EAST);
    frame.pack();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    }
    }
      

  6.   


    这位大神能不能给实现一下,我知道好像是旋转Graphics,但具体代码的就不太懂了。
    我会把这个帖子分数加满的,当然如果你没时间帮我,我也会给你的,这个不能代表什么,所以非常感谢您的帮助。
      

  7.   

    绘图完成后,你可以得到一个Image 吧
    把这个Image生成 ImageIcon,然后再使用上面的RotateIcon包装,分别传入不同的旋转参数,设置到其它格子里或者自定义一个Image组件,根据坐标转换参数,执行对Image不同的绘制操作.
    在九宫格的其它格子里,分别填上这个组件,并设置不同的坐标转换参数
      

  8.   


    我把工程上传到我的上传资源里了,名字叫 “java编写的绘图程序”,希望能帮我实现这个功能。还有,我那个程序绘图时,光标出了画布的范围就不能再绘图了,也就是不能在角上画个半圆,要怎么改?