有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

SwingJava:如何设置。gif的大小与框架的大小相同

所以我在摆弄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-安卓-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) 个答案

  1. # 1 楼答案

    now I can't make the gif fit the entire frame instead of just a portion

    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