2009-03-14 2 views
0

repaint()를 호출하면 repaintComponent (Graphics)가 호출 된 다음 외부에서 호출 할 수 있습니다. Graphics 클래스가없는 클래스.repaint() 또는 JPanel의 Graphics에 액세스하는 암시 적 Graphics 매개 변수가있는 Java 메서드 호출

필자는 더 많은 매개 변수를 사용하는 기능을 갖고 싶습니다.하지만 그걸로 그릴 수 있기를 원하므로 전화를 걸 수 있어야합니다 (예 : repaint()). RepaintComponent()를 명시 적으로 호출하여 다시 그리는 것으로 가정하면 함수를 호출하기 위해 repaintComponent (Graphics)를 호출하거나 Graphics에 액세스 할 수 있습니다.

개체에 데이터를 넣은 다음 그림을 그리는 것에 대해 생각해 봤지만 제대로 작동하는지 확실하지 않습니다. 매우 복잡합니다.

+0

어쩌면 그것은 나뿐이지만 혼란스러워 보이는 것처럼 보일 수 있습니다. 나는 당신이하고 싶은 것을 정말로 이해하지 못합니다. –

+0

@Prinny : 전혀 도움이되지 않았나요? –

답변

1

이벤트 발송 스레드에서 Java 페인트 이벤트를 트리거하는 O/S 페인트 이벤트를 처리하는 동안에 만 GUI에 구성 요소 페인팅을 수행 할 수 있습니다. Repaint는 paint() 나 그 파생물을 호출하지 않습니다. 이는 구성 요소 영역의 페인트를 요청하고 페인트 이벤트를 트리거합니다.

속성 (예 : 스윙)을 설정하거나 하위 클래스를 만들고 하위 클래스 구성 요소에 설정 도구를 추가하는 등 구성 요소에 페인트해야하는 정보를 어떻게 든 설정해야합니다. 데이터를 객체에 넣으면 해당 객체를 구성 요소로 설정하는 것이 쉽지 않습니다.

페인트 (그래픽) 메서드로 별도의 개체를 만들고 해당 개체를 구성 요소와 연결 한 다음 개체 페인트에서 페인팅 메서드를 호출 할 수도 있습니다. 페인팅은 많은 수의 객체에 관심을 기울입니다.

+0

+1 Software Monkey 참고 : repaint()를 호출하면 paintComponent (...)를 직접 호출하지 않습니다. 근본적으로 스윙 (awt)에 다음 번에 구성 요소를 다시 칠해달라고 요청하고 있습니다. 이벤트 스레드는 그 시간이 끝나면 최종적으로 paintComponent (...)가되고 최상위 네이티브 코드가 적절한 그래픽 객체를 제공 할 때 결정됩니다. 매개 변수를 명시 적으로 선언하거나 주변 객체/정적 객체/단독 객체를 사용하여 매개 변수를 함수에 전달한다는 아이디어는 Java에서는 불가능합니다. – basszero

관련 문제