2014-10-17 6 views
1

jframe을 동적으로 추가하는 jframe을 원합니다. 버튼을 클릭하면 사용 가능한 모든 구성 요소와 해당 위치 (또는 시퀀스)에 대해 알고 싶습니다. 나는이 방법jframe에서 모든 jcomponents 및 해당 위치 가져 오기

를 사용하고 있지만, 나는 단지 그들의 이름이 필요 구성 요소에 대해 너무 많은 정보를 포함하는 문자열을 얻고있다 (안해야하는 변수 이름은 자신의 클래스 이름의 JLabel의 LBL 의미한다 그래서 JLabel의 원하는) 및 그들의 순서.

문자열에서이 정보를 추출하는 방법을 알지 못합니다.

+1

... 그 자체에 재귀 검색을 수행하지 않고, getComponents는 즉시 컨테이너 내에서 구성 요소를 반환합니다, 기억 'setName' 메쏘드에서,'Component'는 이름을 갖지 않을 것입니다. 'instanceof' (즉'if (comp instanceof JLabel) {...')를 사용하여 타입을 확인했지만 실제로 어떤 컴포넌트인지 추측해야합니다. 거기 위치에 관해서는, 당신은'getLocation'을 사용할 수 있습니다 ... – MadProgrammer

+0

하지만 이것은 단일 구성 요소를위한 것입니다. 얼마나 많은 구성 요소가 있을지 모르기 때문에 내가 할 수없는 모든 구성 요소에 대해 getLocation() 메서드를 호출해야합니다. 그들은 동적으로 생성됩니다. –

+2

'for 루프 '를 사용하여'Component []'배열을 반복합니다 ... 정말로 ... – MadProgrammer

답변

1

모든 구성 요소는 단순히 getLocation 방법은 구성 요소의 X/Y 좌표를 포함하는 java.awt.Point를 반환합니다

for (Component comp : getContentPane().getComponents()) { 
    System.out.println(comp.getLocation()); 
} 

구성 요소 및 구성 요소를 통해 루프의 배열을 ... 가지고하는 getLocation 방법이있다.

당신이 이름을 추가하는`Component`s를 제공하지 않는 한 그것은 통해

+0

그것을 얻었습니다. 고마워요. –