2012-06-12 4 views
0

을 이해하는 데 도움이 필요, 내 제약은 원래 설정했다 사양을 초과하는 행 (cf. "형식 문자열에 행 수가 적은 경우 해당 차원의 표 셀에 마지막 행과 열 제약이 추가 행에 사용됩니다.")내가 일하고 자바 프로젝트에서 일부 행 제한을 행동

실제로 행 제약이 []10[]10[]10[]이되는 것을 의미합니다. []10[]의 행 제한 사용

JLabel label = new JLabel("Text area"); 
JTextArea text = new JTextArea("Test", 3, 40); 
JScrollPane scroll = new JScrollPane(text); 
panel.add(label); 
panel.add(scroll, "grow,wrap"); 

는 1 행 높다, 그러나 나는

String rowConstraints = "[]10[]"; 
을 변경할 때 : 나는 3으로 설정 행 JScrollPane의에서 JTextArea에있을 때

내 문제는 온다

String rowConstraints = "[]"; 

에 갑자기 내가 스펙 전체 3 행의 높이를 사용 JTextArea에 대해 ified.

행 제약 조건이 작동하는 방식을 잘못 이해했거나 여기에서 내가보고/이해하지 못했던 다른 점이 있습니까?

답변

1

두 경우 모두 JLabel (첫 번째 열) 및 JScrollPanel (두 번째 열은 JTextArea)이라는 레이아웃 행 (예 : MigLayout에서 관리하는 행) 만 사용하고 있습니다.

쉽게 단순히 레이아웃 제약에 "디버그"를 추가하여 MigLayout 행과 열 구조를 시각화 할 수 있습니다 :

String layoutConstraints = "fill,debug"; 

그리고 시작 응용 프로그램을. 레이아웃 작업을하는 동안이 설정을 사용하는 것이 좋습니다.

JTextArea에 대해 설정 한 행 속성은 레이아웃 행과 아무 관련이 없습니다.

java.awt.TextArea의이 선호하는 크기를 결정하는 데 사용되는 두 개의 속성 행과 열이 :이 속성은 javadocs에 정의 된대로,이하려고합니다 어떤 크기 JTextArea 구성 요소를 알려줍니다. JTextArea에 레이아웃 (귀하의 경우 JPanel의) 컨테이너의의 행에 어떤 방법으로도 해당하지 않는 JScrollPane의 (...)

그러나 JTextArea 행 내부에 위치 할 때의 뷰포트의 바람직한 사이즈를 나타 내기 위해 이러한 속성을 사용합니다.

정확하게 알아보기 (그리고 실험하십시오!) 정확히 JTextArearow은 무엇을 의미합니까?

+0

나는 그들이 끝날 때까지 내 UI를 디자인하면서 항상 디버그를 사용합니다. JTextArea의 행은 행 제약과 아무런 관련이 없다는 것도 알고 있습니다. '[] 10 []이'[] 10 [] 10 [] 10 []'을 의미하면 (모든 행에 대해 계속), []에 반복 행 제약이있다. '[]'case는'JScrollPane' +'JTextArea'가'JTextArea'에 지정된 것처럼 3 행이 될 수 있습니다. 반면 [10]의'10 []'의 반복 행 제약은 단순히 1 행. – asmodai

+0

귀하는 이미 귀하의 문제에 대한 해결책을 찾았습니까? –