2013-10-05 2 views
1

Я делаю игру в jframe, и я не знаю, как использовать апплет и сделать внутренний класс, поэтому я остался с jframe-стилем. и это моя проблема. как я могу добавить задержку между компонентами в jframe.Как добавить задержку между компонентами JFrame

Я добавил «load.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 продолжить событие

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

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

Вот что вам нужно сделать:
1. Просто показать GIF в JLABEL, когда вы начинаете игру.
2. Spawn a , который будет исполнять только после через 3 секунды после отображения вашего JFRAME.
3. Внутри задачи таймера, вызовите invalidate() на JFRAME, а затем удалить JLABEL, вызовите invalidate(), а затем добавить JBUTTON

БУМ! Вы можете пойти с удивительным экраном загрузки.
Вот урок: http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

+2

Не используйте TimerTask. Таймер - это правильный класс для использования с Swing. – camickr

+0

Можете ли вы показать мне правильный способ выполнения TimerTask или Timer, отредактировав // код события продолжения jbutton? или дать мне пример. –

+0

@ Java-Newbie Связал вас с учебником :) –

Смежные вопросы