2010-07-22 3 views
0

저는 Java n0ob입니다 .... 미리 사과 드리겠습니다 ...JPanel에서 컨트롤에 액세스하는 방법 ...?

런타임에 동적으로 컨트롤을 추가 한 jPanel이 있습니다. 나중에, 내 코드에서 모든 컨트롤 (jCheckBoxes)을 반복하여 점검 여부를 확인합니다. .NET에서

- 나는 myPanel.Controls 다음에 ... 일부 등에서 제어 등 각 myControl를 들어

를 찾고있을 것

는 JPanel과 함께이 작업을 수행 할 수있는 방법이 있습니까? 이것에 jPanel을 사용하지 않아야합니까?

답변

1

다음은 JPanel 내의 모든 컨트롤에 대한 글꼴을 설정하는 방법입니다. CheckBoxes에 액세스 할 때 비슷한 기능을 사용할 수 있습니다 (재귀 적이며 하위 패널도 통과합니다).

public static final void setJPanelFont(JPanel aPanel, Font font) 
{ 
    Component c = null; 
    Component[] components = aPanel.getComponents(); 

    aPanel.setFont(font); 
    if(components != null) 
    { 
     int numComponents = components.length; 
     for(int i = 0; i < numComponents; i++) 
     { 
      c = components[i]; 
      if(c != null) 
      { 
       if(c instanceof JPanel) 
       { 
        setJPanelFont((JPanel)c,font); 
       } 
       else 
       { 
        c.setFont(font); 
       } 
      } 
     } 
    } 
} 
1

간단 ... 사용 getComponents 방법.

1

컨트롤을 만들 때 실제로 이러한 컨트롤 목록을 유지해야 모든 확인란을 찾는 구성 요소를 반복 할 필요가 없습니다. ArrayList<JCheckBox>을 만들고이 배열에 확인란을 추가하십시오. 그런 다음 이미 참조가 있으므로 배열을 반복하여 루프가 검사되는지 확인할 수 있습니다. 패널에 추가 된 모든 구성 요소를 반복 할 필요가 없습니다.

관련 문제