2012-03-05 3 views
4

JGoodies FormLayout을 사용하여 구성 요소의 정렬을 변경하는 방법이 있습니까? 예를 들어 런타임시 FormLayout 정렬 변경

,
CellConstraints cc = new CellCosntraints(); 
panel.add(component,cc.xy(1,1,CellConstraints.DEFAULT,CellConstraints.FILL)); 

내가 대신 FILL의 DEFAULT의 행 제약 조건이 될 component을 변경하려면

은 제거하지 않고 지금이 설정되어 있는지를 변경하고 재하는 방법은 무엇입니까 구성 요소를 추가 하시겠습니까?
FormLayout l = new FormLayout(); 
... 
l.setContraints(component, newconstraints); 

다음 아마 일을 업데이트하기 위해 컨테이너에 revalidate()을 수행 할 수처럼

답변

5

는 것 같습니다.

+0

아, w 생각하기에 완전히 새로운 셀 제약 객체를 사용하기 때문에 이것을 사용하지 않을 것입니다. 현재 구성을 수정 한 다음 해당 구성 요소에 대해 재설정 할 것입니다. 나는 곧 그것을 시도 할 것이다, 고마워. –

+0

코드는 제약 객체를 복제하므로 안전해야합니다. [출처] (http://grepcode.com/file/repo1.maven.org/maven2/com.jgoodies/forms/1.2.1/com/jgoodies/forms/layout/FormLayout.java#FormLayout.setConstraints%28java. awt.Component % 2Ccom.jgoodies.forms.layout.CellConstraints % 29) – Jim

+0

정말이에요? 나는 그것이 실제로 객체를 복제했다고 생각하지 않았다. 하지만 여전히 여러 구성 요소에 대해 cellconstraints 객체를 다시 사용할 수 있기 때문에이 방법이 효과가 있다고 생각합니다. –

0

두 가지 방법 (올바른 방향 @Jim +1)

1) 컨테이너

revalidate() //covered validate() 
repaint() // required in some cases for JLabel, JTextComponents, JScrollPane ... 

2 크기 조정없이 컨테이너 안에서 가능한 치수를 채우고) 컨테이너의 크기 조정으로 콘테이너 내의 가능한 치수를 채우고있다

pack(); 

this code can help you

+0

사실, 질문과 관련이 없습니다 ;-) – kleopatra