【问题标题】:Java: how to set .gif to the same size as the frameJava:如何将 .gif 设置为与框架相同的大小
【发布时间】:2016-09-03 08:44:41
【问题描述】:

所以我在玩 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);

    }
}

【问题讨论】:

  • 我知道它的措辞很糟糕,任何编辑将不胜感激
  • 我认为您需要使用 java Image 包并重新缩放您的图像,使其适合框架尺寸。
  • 您可能会尝试使用 HTML 来加载图像并以 % 而不是像素来指定宽度和高度。

标签: java swing


【解决方案1】:

现在我不能让 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,所以如果图像中存在动画,则必须考虑到这一点。请参阅this answer 以调整动画 GIF 的大小。

【讨论】:

  • 我意识到如果它没有动画我可以很容易地改变它,所有关于如何做到这一点的教程的问题已经是我不理解语法,因为它们使用不同的放置方法将 gif 放到框架上
猜你喜欢
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 2019-09-01
  • 1970-01-01
相关资源
最近更新 更多