프로그래밍 언어/JAVA

Java Swing에서 set (Preferred | Maximum | Minimum) Size 메서드를 사용하면 안되는 이유

Rateye 2021. 12. 19. 14:10
728x90
반응형
질문 : Java Swing에서 set (Preferred | Maximum | Minimum) Size 메서드를 사용하지 않아야합니까?

다음 방법의 사용을 제안한 것에 대해 여러 번 비판을 받았습니다.

Swing 구성 요소에. 표시된 구성 요소 간의 비율을 정의하려는 경우 사용에 대한 대안이 없습니다. 나는 이것을 들었다 :

레이아웃을 사용하면 대답은 항상 동일합니다. 적합한 LayoutManager를 사용하세요.

웹을 조금 검색했지만 주제에 대한 포괄적 인 분석을 찾지 못했습니다. 그래서 다음과 같은 질문이 있습니다.

답변

  1. 이러한 방법의 사용을 완전히 피해야합니까?
    - 예, 애플리케이션 코드입니다.
  2. 방법은 이유가 있습니다. 그렇다면 언제 사용해야합니까? 어떤 맥락에서? 어떤 목적으로?
    - 개인적으로 API 디자인 사고라고 생각합니다. 하위 크기에 대한 특별한 아이디어를 가진 복합 구성 요소에 의해 약간 강제됩니다. 사용자 정의 LayoutManager로 요구 사항을 구현해야했기 때문에 "약간".
  3. 이러한 방법을 사용하면 정확히 어떤 부정적인 결과가 발생합니까?
    - (화면 해상도가 다른 시스템간에 이식성을 추가하는 것만 생각할 수 있습니다.)일부 (불완전하고 불행히도 SwingLabs를 java.net으로 마이그레이션하여 링크가 끊어짐) 기술적 이유는 예를 들어 규칙 (hehe) 또는 내 답변에 대한 그의 의견에서 찾은 @bendicott 링크에 언급되어 있습니다. 사회적으로 코드를 유지하고 깨진 레이아웃을 추적해야하는 불행한 동료에게 수많은 작업을 제공합니다.
  4. 어떤 LayoutManager도 원하는 모든 레이아웃 요구 사항을 정확히 충족시킬 수 있다고 생각하지 않습니다. 내 레이아웃의 모든 작은 변형에 대해 새로운 LayoutManager를 구현해야합니까?
    - 예, "모든 레이아웃 요구 사항"에 대한 아주 좋은 근사치를 만족시킬만큼 강력한 LayoutManager가 있습니다. 큰 세 가지는 JGoodies FormLayout, MigLayout, DesignGridLayout입니다. 따라서 실제로는 단순한 고도로 전문화 된 환경을 제외하고는 LayoutManager를 거의 작성하지 않습니다.
  5. 4에 대한 대답이 "예"이면 유지 관리가 어려워지는 LayoutManager 클래스가 확산되지 않을까요?
    - (4에 대한 답은 "아니오"입니다.)
  6. 구성 요소의 자식 간의 비율을 정의해야하는 상황 (예 : 자식 1은 공간의 10 %, 자식 2 40 %, 자식 3 50 %)을 정의해야하는 상황에서 사용자 지정 LayoutManager를 구현하지 않고도이를 달성 할 수 있습니까?
    - Big-Three 중 누구라도 GridBag조차 할 수 없습니다 (정말 마스터하는 데 신경 쓰지 않고 너무 적은 전력으로 너무 많은 문제).

 

 

출처 : https://stackoverflow.com/questions/7229226/should-i-avoid-the-use-of-setpreferredmaximumminimumsize-methods-in-java-swi
728x90
반응형