如何在JFrame组件之间添加延迟

时间:2013-10-05 15:31:51

标签: java swing

我在jframe中制作游戏,我不知道如何使用applet和制作内部类,所以我保持jframe风格。 这是我的问题。如何在jframe中添加组件之间的延迟。

我在框架的中心添加了“loading.gif”。并且jbutton在框架的南部“继续”但是我想在“继续按钮”出现之前加上延迟3秒并且“loading.gif”消失。 (比如在游戏的加载部分)。

这是我的代码......

//the p2 components
            ImageIcon loading = new ImageIcon("C:\\java pics\\loading.gif");
            JLabel startLoading = new JLabel(loading);
            JButton continue1 = new JButton("Continue");
            p2.add(startLoading,borderlayout.center);
            p2.add(continue1,borderlayout.south);

// jbutton continue事件

 start.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            // TODO Auto-generated method stub
            f.add(p2);
            f.remove(p1);
            f.setVisible(true);
            f.revalidate();
            f.repaint();

            Timer t = new Timer();
            //delay for 3 seconds
            try {
            Timer.delay(3000);
            } catch (InterruptedException ee) {
            return;
            }
            t.start();     
        }
    });

我将不胜感激。

1 个答案:

答案 0 :(得分:1)

but i want to add delay for 3 seconds before the "continue button" appears and the "loading.gif" disappear.

这是你需要做的:
1.当你开始游戏时,只需在JLABEL中显示GIF即可 2.产生TimerTask JFRAME,在显示invalidate()后仅执行一次 3秒。
3.在计时器任务中,拨打JFRAME上的JLABEL,然后移除invalidate(),拨打JBUTTON,然后添加{{1}}

砰!你可以选择一个惊人的加载屏幕 以下是教程:http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html