1

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

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

这是我的代码...

//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继续事件

 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();     
        }
    });

我将不胜感激。

4

1 回答 1

1

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

以下是您需要做的: 1.开始游戏时
只需在 a 中显示 GIF 。 2. 生成一个将在您显示后 3 秒执行一次的。 3.在定时器任务里面,先调用再删除,调用再添加JLABEL
TimerTaskJFRAME
invalidate()JFRAMEJLABELinvalidate()JBUTTON

轰隆隆!你很高兴拥有一个惊人的加载屏幕。
这是教程:http ://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

于 2013-10-05T15:43:28.600 回答