栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java Swing上旋转JLabel或ImageIcon

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java Swing上旋转JLabel或ImageIcon

与其旋转组件本身,不如旋转组件的 内容

附录:在该示例中,直接在内存中

RotatableImage.getImage()
创建一个图像
BufferedImage
,但是您可以用来
ImageIO.read()
从其他位置获取图像。
BufferedImage#createGraphics()
如果要修改图像,则支持,但是您可能只想在旋转的图形上下文中作为的一部分绘制未修改的图像
paintComponent()

附录:您正在用旋转的副本在图像上绘画;而是将图像绘制到旋转的图形上下文中:

import java.awt.Dimension;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import javax.swing.Jframe;import javax.swing.JPanel;public class Test {    public static void main(String args[]) throws Exception {        Jframe frame = new Jframe("Rotation Test");        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        final BufferedImage bi = ImageIO.read(new File("img/stand.jpg"));        frame.add(new JPanel() { @Override public Dimension getPreferredSize() {     return new Dimension(bi.getWidth(), bi.getHeight()); } @Override protected void paintComponent(Graphics g) {     super.paintComponent(g);     Graphics2D g2 = (Graphics2D) g;     g2.rotate(Math.PI / 4, bi.getWidth() / 2, bi.getHeight() / 2);     g2.drawImage(bi, 0, 0, null); }        });        frame.pack();        frame.setVisible(true);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449885.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号