섹션이 축소되면 해당 섹션의 컨테이너 (상위) 합성 크기가 자동으로 축소되어 접힌 섹션의 크기와 일치합니다. 그래서 나는 layout() (이 메소드가 아닌 것처럼 보임)과 같은 일부 메소드가 섹션이 축소되었을 때 해당 컨테이너에 대해 (자동으로) 디폴트라고 부름을 추측한다. 그 방법/s을 정확히 알고 싶습니다. 섹션을 삭제 (처분) 할 때도 같은 일이 발생하기를 원합니다. 해당 섹션을 배치 할 때 그 컨테이너 컴포지트의 크기를 줄이려고합니다.섹션이 축소되거나 swt에서 확장 될 때 자동으로 호출되는 메소드는 무엇입니까?
0
A
답변
2
org.eclipse.ui.forms.widgets.Section
은 Eclipse Forms API의 일부이며 해당 컨텍스트 외부에서 올바르게 사용되지 않을 수 있습니다.
는 섹션이 확장되면 /이 본질적으로 SharedScrolledComposite
의 첫 번째 인스턴스 (당신이 SharedScrolledComposite
를 사용하지 않는 경우 때문에 제대로 작동하지 않을 수)까지 모든 부모 복합에 Composite.layout(true)
를 호출 Section.reflow
이라고합니다 붕괴. SharedScrolledComposite
이 발견되면 SharedScrolledComposite.reflow(true)
이 호출됩니다.
실제 reflow
코드 : setRedraw
에
protected void reflow() {
Composite c = this;
while (c != null) {
c.setRedraw(false);
c = c.getParent();
if (c instanceof SharedScrolledComposite || c instanceof Shell) {
break;
}
}
c = this;
while (c != null) {
c.layout(true);
c = c.getParent();
if (c instanceof SharedScrolledComposite) {
((SharedScrolledComposite) c).reflow(true);
break;
}
}
c = this;
while (c != null) {
c.setRedraw(true);
c = c.getParent();
if (c instanceof SharedScrolledComposite || c instanceof Shell) {
break;
}
}
}
통화는 깜박 거림을 중지하는 단지입니다.
'섹션'에 대해 묻고 있습니까? 'org.eclipse.ui.forms.widgets.Section' 아마도 (SWT가 아닌)? –
예, org.eclipse.ui.forms.widgets.Section입니다. 내 응용 프로그램에서 swt를 사용함에 따라 swt에 대해서도 언급했습니다. SWT는 주로 현재 개발중인 Eclipse 플러그인에서 UI를 에딩하기 위해 주로 사용되었습니다. –
[tag : eclipse-plugin]을 사용하여 Eclipse 플러그인에 태그를 지정해야합니다. SWT 전용 애플리케이션은 완전히 다른 것입니다. –