Java:如何将.gif设置为与帧相同的大小

时间:2016-09-02 20:29:54

标签: java swing

所以我在搞乱GUI,我想挑战自己展示一个gif。我最终能够做到这一点,但现在我无法使gif适合整个帧而不仅仅是一部分。我制作了框架,因此您无法改变尺寸并与显示器尺寸相同。

import java.awt.*;
import javax.swing.*;
import java.net.*;

public class gif {
public static void main (String[] args) throws MalformedURLException {

    URL url = new URL("http://stream1.gifsoup.com/view2/1605810/paranoid-android-o.gif");
    Icon icon = new ImageIcon(url);
    JLabel label = new JLabel(icon);

    JFrame frame = new JFrame();

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    label.setSize(screenSize);
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.getContentPane().add(label);
    frame.setTitle("what?");
    frame.setSize(screenSize);
    frame.setResizable(false);
    frame.setVisible(true);

    }
}

1 个答案:

答案 0 :(得分:2)

  

现在我无法使gif适合整个帧而不仅仅是一部分

JLabel将根据内部的ImageIcon自行调整大小。您可以将图像调整到所需的比例。例如:

BufferedImage image = ImageIO.read(url);
Image i2 = image.getScaledInstance(screenSize.width, screenSize.height, Image.SCALE_SMOOTH);
JLabel label = new JLabel(new ImageIcon(i2));
....

这就是说,输入图像是一个gif,所以如果图像中存在动画,你必须考虑到这一点。有关调整GIF动画的大小,请参阅this answer