2014-05-21 3 views
0

나는 꽤 오랫동안이 프레임 워크를 사용 해왔다. 나는 지금 작업하고있는 대규모 Swing 애플리케이션에 구현하기 전에 이것이 좋은 아이디어인지 확인하고 확인해야한다고 생각했다.Java에서 JLists를 관리하는 좋은 방법은 무엇입니까?

내 시스템의 루트에있는 두 개의 인터페이스가 : 그럼

public interface Colorable { 
    Color getColor(); 
} 

public interface Listable { 
    String getListDisplay(); 
} 

나는 새로운 JList을 만들 때마다를, 나는 새로운 ListRenderer 작성 :

private class ListRenderer 
      extends DefaultListCellRenderer { 

     @Override 
     public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { 
      super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); 
      if (!(value instanceof Listable)) { 
       return this; 
      } 
      if (value instanceof Colorable) { 
       Color c = ((Colorable) value).getColor(); 
       if (c != null) { 
        setForeground(c); 
       } 
      } 
      Listable listable = (Listable) value; 
      setText(listable.getListDisplay()); 
      return this; 
     } 
    } 

이것이 좋은 방법입니다 JLists을 (를) 관리 하시겠습니까?

+0

[코드 검토] (http://codereview.stackexchange.com/)에 대한 질문과 같습니다. –

+0

접근 방식과 공통점입니다. 다른 것은 렌더러의 특정 속성을보다 쉽게 ​​변경하기 위해 체인을 연결할 수있는 일종의 "체인으로 연결된"렌더러를 만드는 것입니다. 예를 들어 – MadProgrammer

답변

0

이 상황을 처리하는 일반적인 방법입니다.