2012-02-15 10 views
0

스윙 구성 요소를 애플릿에 추가하면 해당 애플릿이 표시되지 않습니다. 때로는 마우스를 일부 JButton 주위로 움직이면 (이상하게) 나타납니다. 메서드 페인트 (그래픽 g) {} 및 업데이트 (그래픽 g) {},하지만 모든 이미지 및 그림 코드를 제거 할 때 여전히 구성 요소가 나타나지 않습니다. 애플릿에서 일어나는 일이 정상적인 것입니까, 아니면 실수입니까?애플릿의 스윙 구성 요소가 작동하지 않습니다.

+0

당신이 당신의 애플릿은 JApplet에 연장 않는 몇 가지 코드 – vikky

+1

을 보낼 수 있습니까? 더 나은 대답을위한 코드 게시 –

+1

애플릿이 [이벤트 발송 스레드] (http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)에서 구성되었는지 확인하십시오. – trashgod

답변

0

좋아, 알아 냈어. 나에 의한 어리석은 실수. JApplet이 아니라 애플릿을 사용하고있었습니다. 모든 컨테이너가 적절하게는, super.paint (g)를 사용하여 페인트 (그래픽 g) 방법 당신의 페인트에

:

나는 또한 같은 문제가 없었다
1

애플릿뿐만 아니라 Java 프로그램에서도 일반적입니다. 내가 아는 한, 비호 환성 문제 때문에 많은 경우를 만난다. 이 일이 발생하면 창을 최소화하고 크기를 조정하면 모든 개체가 정상적으로 튀어 나오게됩니다. 나는 그것에 대한 해결책이 있는지 확신 할 수 없다. 나는 그것이 있어야한다고 생각합니다. 이것은 주로 오브젝트가 겹쳐있을 때 발생합니다.

EDIT : 정보가 유용 할 수도 있습니다 : 일반 자바 프로그램에서 창 크기를 조정하면 javax.swing.JComponent.repaint()가 호출됩니다.

+0

* "자바 프로그램에서도"* 아니요, 코드가 근본적으로 손상되지 않는 한 아닙니다. –

+0

@AndrewThompson JFrame과 Null Layout을 사용하여 프로그램을 작성했습니다. 이 문제는 객체가 겹치면 아주 자주 발생합니다. 때때로 다른 개체 위에 있어야하는 개체가 덮여 져야합니다. 원하는 경우 다른 곳에서 내 코드를 게시 할 수 있으며 코드가 근본적으로 잘못되었다고 생각하지 않습니다. – YankeeWhiskey

+0

* ".. Null Layout"* 문제의 원인이 있습니다. See [setLayout (null)은 결코 필요 없다. Ever!] (https://forums.oracle.com/forums/thread.jspa?threadID=1351374)를 참조하십시오. –

1

, 여기에 나를 도와 준 솔루션입니다.

처럼 :

void paint(Graphics g) 

{ 

    super.paint(g); 

//code to draw something 

} 
관련 문제