여러 컨트롤을 만드는 클래스가 있지만 클래스 자체가 합성 또는 위젯이 아닙니다. 컨트롤의 레이아웃은 모두 new GridLayout(1, false)
입니다. 클래스 레벨 GridLayout
을 정의하여 모든 컨트롤에 사용할 수 있는지 여부는 확실하지 않습니다. 당신은 내가 3 개 개의 동일한 GridLayout
인스턴스를 생성 여기 보시다시피 여기에 코드 예제다른 컨트롤간에 레이아웃 인스턴스를 공유하는 것이 안전합니까?
public void createControl(Composite parent) {
parent.setLayout(new GridLayout(1, false));
Composite comp1 = new Composite(parent, SWT.NONE);
comp1.setLayout(new GridLayout(1, false);
Composite comp2 = new Composite(parent, SWT.NONE);
comp2.setLayout(new GridLayout(1, false);
// ... other stuff
}
입니다. 이러한 모든 컨트롤에 대해 하나의 클래스 수준의 insance를 사용할 수 있습니까? 모든 보안 문제 또는 성능 단점?
그런데 저는 보통 코드에서 GridLayout과 다른 리소스를 재사용하고 있으며 지금까지 문제가 발생하지 않았습니다. 그러나 공유 자원을 변경하면 이전에받은 모든 제어/위젯이 변경 될 것이라고 예상하지 마십시오. –