所以我在搞乱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);
}
}
答案 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。