java repaint 메서드를 사용하면 다시 페인트되지만, 캔버스를 클릭하거나 패널의 크기를 조정할 때만 업데이트가 표시됩니다. 이 문제를 어떻게 해결할 수 있습니까? 그 원인은 무엇입니까?Java repaint가 올바르게 작동하지 않습니다.
5
A
답변
15
revalidate() 메서드를 호출해야합니다. 이것에 의해, 레이아웃 매니저는 모든 컴퍼넌트를 갱신/페인트 다시합니다.
2
repaint()가 실제로 다시 칠하지 않습니다. 단지 을 요청하여 구성 요소를 다시 칠해 야합니다.
0
페인트하려는 구성 요소에서 Graphics 객체를 간단히 가져 오는 것이 도움이 될 수 있습니다. 그런 다음 Graphics 객체에서 paint 메서드를 호출하면됩니다. 예 :
g = component.getGraphics();
draw(g);
+0
이것은 실제로 스윙 스레드에 이미있을 때 매우 유용합니다. – aepurniet
코드 ..., 제발? 또는 우리가 추측하기를 바라십니까? –
표준 스윙 구성 요소 만 사용하고 있습니까? 맞춤 구성 요소를 만들었습니까? –
스윙? AWT? SWT? 도움이되는 답변을 얻으려면 더 많은 정보가 필요합니다. –