gif学习java。。。这个图像究竟为什么会闪烁?
似乎有很多类似的问题,但它们实现了不同的代码。。。这只是基本代码,所以我感觉我在做一些非常奇怪/错误的事情。这就是我的代码的样子。GIF是透明和动画的,如果这改变了事情的话
import java.awt.*;
import javax.swing.*;
public class NewClass extends JFrame {
private JLabel label;
private JButton button;
private JTextField textfield;
private ImageIcon image;
private JLabel label1;
private ImageIcon imaged;
private JLabel label2;
public NewClass (){
setLayout(new FlowLayout());
label = new JLabel("Hi, I am a label!");
add(label);
image = new ImageIcon(getClass().getResource("sprite15_2_1.gif"));
label1 = new JLabel(image);
add(label1);
imaged = new ImageIcon(getClass().getResource("sprite2_1_1.gif"));
label2 = new JLabel(imaged);
add(label2);
label1.setDoubleBuffered(true);
label2.setDoubleBuffered(true);
textfield = new JTextField(15);
add (textfield);
button = new JButton("aight");
add(button);
}
public static void main (String args[]){
NewClass gui = new NewClass();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.pack();
gui.setVisible(true);
gui.setTitle("Elan Vital");
}
}
编辑为包含完整代码。这只是一个简单的程序
闪烁的GIF(sprite15_2_1.GIF):
雪碧2_1_1。gif显示完美,但sprite15_2_1的下半部分。gif闪烁白色。我不知道有什么不同,我:“。我已经仔细检查了gif,以确保它与文件本身没有问题
# 1 楼答案
尝试启用双缓冲:
有关更多信息,请参阅Component.setDoubleBuffered上的javadoc
# 2 楼答案
gif文件确实存在问题
请使用以下图片中的任意一个,而不是您发布的图片
Double buffering
不是必需的该图像已在photoshop中更正。有一些冗余帧可能导致了闪烁,但令人惊讶的是,图像在所有图像查看器上都能正确显示,而不是在Java中。所以有可能出现java错误
第一个图像快一点,第二个图像慢0.2秒。使用任何一个