我想做一个简单的动画使用计时器,添加和删除按钮,但我不知道我在哪里错了。另外我添加了两个打印只是为了验证。他们打印正确。我还观察到,如果我删除removeAll()方法,它会添加按钮。JAVA时间动画
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Animation extends JPanel{
JLabel l1 = new JLabel(new ImageIcon("tom1.png"));
JLabel l2 = new JLabel(new ImageIcon("tom2.png"));
JLabel l3 = new JLabel(new ImageIcon("tom3.png"));
JLabel l4 = new JLabel(new ImageIcon("tom4.png"));
JLabel l5 = new JLabel(new ImageIcon("tom5.png"));
JButton b1 = new JButton("HAHA");
JButton b2 = new JButton();
JPanel panel = new JPanel();
public Animation(){
setLayout(new BorderLayout());
Timer time = new Timer(1000,new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("paint");
add(b1, BorderLayout.CENTER);
repaint();
revalidate();
System.out.println("remove");
removeAll();
repaint();
revalidate();
}
});
time.start();
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.add(new Animation());
frame.setVisible(true);
frame.setSize(1000,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
你要求添加按钮,然后立即你removeAll()'。如果按钮出现,它将是您永远不会注意到的最闪烁的闪烁。你期望发生什么? – dcsohl 2015-02-05 18:42:48
然后我可以做什么? – zaa 2015-02-05 18:48:23
@zaa你想让按钮闪烁? – 2015-02-05 18:52:53