gpt4 book ai didi

java - 为什么我的 javafx imageview 扭曲了我的 gif 的播放方式

转载 作者:行者123 更新时间:2023-12-01 17:44:36 27 4
gpt4 key购买 nike

我正在尝试使用 gif 作为 javafx 侧边栏的背景,gif 会显示并播放,但似乎只重复前几帧,即使它还有很多帧。

我尝试过通过 fxml 和代码设置 imageview,它们是相同的。

这是供任何想要重现的人使用的 fxml https://pastebin.com/SUV8Lan2这是 gif https://www.sendspace.com/file/1hpxs5这是我配置 ImageView 的方式:

<ImageView fx:id="backgroundFlow" fitHeight="580.0" fitWidth="250.0" pickOnBounds="true" smooth="false">
<image>
<Image url="@../gif/flow.gif" />
</image>
</ImageView>

我希望gif能像这样完全显示https://gyazo.com/4a2cb29f5bf95ae45c7e4c3006638bac相反,我得到这个 https://gyazo.com/8db0207787744a4c40266ae1928d34f9

最佳答案

这似乎是 JavaFX 中的一个错误。图像在 Swing 中正确显示,因此作为解决方法,我将使用 SwingNode :

SwingNode imageNode = new SwingNode();

URL url = new URL(urlSpec);
EventQueue.invokeAndWait(() -> {
ImageIcon icon = new ImageIcon(url);
JLabel imageLabel = new JLabel(icon);
icon.setImageObserver(imageLabel);
imageNode.setContent(imageLabel);
});

由于 Swing 对象的线程要求,EventQueue.invokeAndWait 是必需的。 (JavaFX 具有相同的要求;两者都必须在专用线程中执行。The SwingNode.setContent method is a rare exception.)

关于java - 为什么我的 javafx imageview 扭曲了我的 gif 的播放方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57203296/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com