2010-03-01 2 views
0

이것은 내 세 번째 질문입니다. 제발 다시 도와주세요 ... 나는 애플릿에 스플래쉬 스크린을 설치하고 싶습니다. 그렇게하면서, 나는 JWindow 컴포넌트를 사용했다. 나는 독립형 자바 애플리케이션을위한 스플래쉬 스크린을 만들 때 이미 그것을 사용했기 때문에 애플릿에서도 작동 할 것이라고 생각했다. 문제는 작동하지 않는다는 것입니다. Jwindow는 애플릿과 함께 사용할 수 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까? 많은 tnx!애플릿 SplashScreen, JWIndow?

애플릿의 시작 메소드에서 LoadingScreen 객체를 인스턴스화합니까?

public class LoadingScreen extends JWindow{ 
private static final long serialVersionUID = 1L; 
private Image image1; 
private ImageIcon icon1; 

public LoadingScreen(){ 
//image = Toolkit.getDefaultToolkit().getImage("WebContent/images/loadbar.gif"); 
image1 = getImage(getCodeBase(), "images/loadbar.gif"); 

icon1= new ImageIcon(image1); 
setSize(icon1.getIconWidth(), icon1.getIconHeight()); 
setLocationRelativeTo(null); 
setVisible(true); 

try{ 
//Make JWindow appear for 5 seconds before disappear 
Thread.sleep(5000); 
dispose(); 
System.exit(0); 
}catch(Exception exception){ 
exception.printStackTrace(); 
} 
} 
public void paint(Graphics g){ 
    super.paint(g); 
    g.drawImage(image1,0,0,null); 
} 

}

업데이트 : 여기 코드입니다! 문제가 해결되었습니다. 애플릿의 start 메소드 내의 정적 인 Thread.sleep 메쏘드에 대한 호출은 리소스 (이미지)가 로딩되는 것을 막습니다. 그래서 그것이 보이지 않는 것입니다. 실제 카운팅을하기 위해 별도의 타이머 스레드를 생성하여 수정되었습니다 ... 모두들 알기 때문에 ... :)

답변

0

문제가 해결되었습니다. 애플릿의 start 메소드 내의 정적 인 Thread.sleep 메쏘드에 대한 호출은 리소스 (이미지)가 로딩되는 것을 막습니다. 그래서 그것이 보이지 않는 것입니다. 실제 카운트를하기 위해 별도의 타이머 스레드를 만들어서 수정되었습니다 ... 모두들 알기 때문에 ... :)

0

이미지를 표시하기 위해 paint (...) 메소드를 대체 한 이유는 무엇입니까? ImageIcon을 JLabel에 추가하고 레이블을 창에 추가하십시오. 그런 다음 pack() 메서드를 사용하여 윈도우 크기를 조절하면됩니다.

JWindow가 작동하는지 여부는 알 수 없습니다. 크기를 설정할 때 이미지가로드되지 않았기 때문에 크기가 0 일 수 있습니다.

또는 장식되지 않은 JFrame을 사용해 볼 수도 있습니다.

관련 문제