1

似たような問題がたくさんあるようですが、それらは異なるコードを実装しています...これは単なる基本コードなので、非常に奇妙な/間違ったことをしているような気がします。これは私のコードがどのように見えるかです。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) :

点滅GIF

sprite_2_1_1.gif は完全に表示されますが、sprite15_2_1.gif の下半分が白くちらつきます。何が違うのかわからない I: " . GIF を再確認して、ファイル自体に問題がないことを確認しました...

4

2 に答える 2

0

ダブルバッファリングを有効にしてみてください:

label1.setDoubleBuffered(true);
label2.setDoubleBuffered(true);

詳細については、Component.setDoubleBufferedの javadoc を参照してください。

于 2013-05-22T18:26:11.273 に答える