2010-06-20 4 views
0

나는 다음과 같은 자바 프레임에 JLabel의 초기화 : 내가 대신 BOTTOM의 기본 설정으로 설정하는 myLabel을 설정하려면 true를 반환하면 작은 조건을하지만, JFrame의를 표시하기 전에JLabel 제약 조건을 초기화 한 후 재설정하는 방법은 무엇입니까?

contentPane.add(myLabel, cc.xywh(1, 1, 31, 6, CellConstraints.DEFAULT, CellConstraints.BOTTOM)); 

하지만 난 할 수 't은 다음과 같이 다시 재정의를 제외하고 어쨌든 찾을 :

contentPane.add(myLabel, cc.xywh(1, 1, 31, 6)); 

그러니 그냥 수직 위치 속성을 편집 할 수있는 더 나은 방법이 있나요?

+0

contentPane에 대한 레이아웃은 무엇입니까? – Istao

답변

1

jgoodies FormLayout을 사용 중이라고 가정하면 CellConstraints 인스턴스를 재사용하는 것이 어느 정도 제한됩니다. 설명서 및 예제에서 각 구성 요소가 패널에 추가되고 CellConstraints 인스턴스가 복사됩니다. 또한 현재 구성 요소의 제약 조건을 수집 할 때 CellConstraints의 복사본이 반환됩니다. 그러나 옵션을 사용할 수 있습니다. 즉, CellConstraints 사본을 가져 와서 공개 vAlign 인스턴스 var를 수정 한 다음 FormLayoutsetConstraints을 호출하면됩니다.

FormLayout layout = (FormLayout)contentPane.getLayout(); 
cc = layout.getConstraints(myLabel); 
cc.vAlign = CellConstraints.DEFAULT; 
layout.setConstraints(myLabel, cc); 

그것보다 조금 더 장황 단순한 다시 추가 귀하가 제공 한 것으로,하지만 원래 인스턴스에서 매직 넘버 (1,1,31,6)을 유지해야 할 필요성을 제거합니다.

+0

정확히 무엇을하려고 했는가 ... 셀 좌표 (1,1,31,6)로 제한되는 대신 ... 많이 고마워요 :) – Brad

관련 문제