2013-10-05 4 views
1

Im jframe에서 게임을 만들고 애플릿을 사용하고 내부 클래스를 만드는 방법을 모르므로 jframe 스타일을 유지했습니다. 이것은 내 문제입니다. jframe에서 구성 요소간에 지연을 어떻게 추가 할 수 있습니까?JFrame 구성 요소 간의 지연을 추가하는 방법

프레임의 가운데에 "loading.gif"를 추가했습니다. 프레임의 남쪽 부분에 jbutton이 "계속"표시되지만 "계속 버튼"이 나타나고 "loading.gif"가 사라지기 전에 3 초 동안 지연을 추가하려고합니다. (게임의 로딩 부분 에서처럼).

이 내 코드입니다 ... // JButton에 계속 이벤트

//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); 

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.
은 그냥 JLABEL에있는 GIF를 보여 여기에

답변

1

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

은 당신이해야 할 것입니다.
2. JFRAME이 표시된 후 3 초 후에 번만 실행되는 TimerTask을 생성하십시오. 타이머 작업 내부
3. JFRAMEinvalidate()를 호출하고 JBUTTON

붐을 추가 후, JLABEL 제거 invalidate()를 호출! 굉장히 좋은 로딩 화면을 가지고 다닐 수 있습니다.
다음은 자습서입니다. http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

+2

TimerTask를 사용하지 마십시오. Timer는 Swing과 함께 사용할 올바른 클래스입니다. – camickr

+0

// jbutton continue 이벤트 코드를 편집하여 TimerTask 또는 Timer를 수행하는 올바른 방법을 보여줄 수 있습니까? 또는 예를 든다. –

+0

@ Java-Newbie 자습서로 연결됨 : –

관련 문제