2010-07-07 3 views
4

커스텀 Look을 구현하고 있습니다. & 기본적으로, SynthStyle, SynthPainter, SynthStyleFactory의 커스텀 버젼을 제공하고 있습니다.커스텀 Synth Look & Feel의 인 세트

나는 이 아니며이 아니며 XML을 사용합니다. 즉 모든 것이 Java API를 통해 수행됩니다. 일반적으로 이것은 잘 작동합니다.

그러나 적절한 인세 트를 설정하는 가장 좋은 방법은 조금 까다 롭습니다. 나는 다양한 옵션을 볼 수

  • 오버라이드 또, getInsets을 SynthStyle가 각 지역에 대한 특정 세트의 값을 반환 할
  • 은 모든 세트의 값을 설정 SynthStyle.installDefaults를 사용하여 구성 요소에 테두리를 적용 (0,0,0,0를) 및
  • 새로운 ComponentUI의 대표

어떤 것이 최선의 방법과 이유를 작성 도장 방법에 보상?

답변

1

아직 결정을 내 렸습니다. 여기에 대한 제 의견이 있습니다 ...

getInsets()을 무시하면 컨텍스트가 적은 간단한 스타일을 가진 경우 멋진 솔루션처럼 보입니다. GUI를 통해 인 세트를 일관성있게 유지하는 데 도움이됩니다.

구성 요소에 빈 경계선을 적용하는 것은이 목적을 위해 약간 hackish 인 것처럼 보입니다. 컴퍼넌트에 커스텀 보더를 적용 할 필요가있는 경우, 컴파운드 보더를 사용하는 방법을 오버라이드 (override)하지 않는 한, 빈 경계를 부주의로 삭제할 가능성이 있습니다.

모든 인셋을 0으로 설정하는 것은 불필요합니다. 이미 0으로 시작하기 때문에 ... 나는 페인트 메서드를 다시 작성한다는 생각에서 매우 겁에 질 렸습니다! 이는 일반적으로 전체 경계를 다시 정의하지 않고 구성 요소에 마무리 접촉을 추가 할 때 수행됩니다.

새롭게 작성하는 ComponentUI이 도움이 될지 모르겠다. 그 이유는 위와 같이 크기 조정 및 페인팅과 관련이 있기 때문입니다.

먼저 응용 프로그램에 전역 효과가 있으므로 옵션 1을 먼저 시도한 다음 예외 및 컨텍스트를 넣기 시작합니다.

관련 문제