2012-12-09 3 views
4

내가가 BorderLayout (WEST)에 JScrollPane의에 대한 적절한 폭을 설정하려고 나누었다는JScrollPane의에서의 JTree에 대한 preferedsize을 설정하는 방법을

JTree tree=new JTree(root); 
JScrollPane jsp=newJScrollPane(tree); 
jsp.setBounds(0,0,200,100); 
Jframe.add(jsp,BorderLayout.WEST); 

내 샘플 코드로 보이지만하십시오

을 작동하지 않는 것이 기본 너비가 표시됩니다.

또는 JTree의 기본 크기를 설정하려고했지만 잘 작동하지만 jscrollpane이 제대로 작동하지 않습니다. 제발 도와주세요.

+1

1) 기본 높이는 ['JTree.setVisibleRowCount (int)'] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JTree.html#setVisibleRowCount% 28int % 29). 2) * "감사합니다 크리슈나"* 인사말에 4 가지 질문을하지 마십시오. –

답변

2

구성 요소의 크기 (최소/최대/우선)를 기준으로 구성 요소의 위치를 ​​결정하는 것은 레이아웃 관리자입니다. 따라서 setBounds에 대한 전화는 무시되며 대신 BorderLayout이 귀하의 구성 요소를 배치 할 위치를 결정합니다.

일반적으로이 메커니즘은 정상적으로 작동합니다. JScrollPane의 문제점은 크기 힌트가 동작으로 원하는 것과 동기화되지 않을 수 있다는 것입니다 (스크롤 창에 스크롤 막대가있을 수 있기 때문에 자체 크기를 결정할 수 있기 때문입니다).

해결책 : 추가하기 전에 JScrollPane에서 setPreferredSize으로 전화하십시오. 이것은 또한 official tutorial에서 이루어지며이 메서드를 호출하는 것이 허용 될 수 있다고 생각할 수있는 유일한 시간입니다.

+0

고마워 Robin .. 지금 일하고 있어요 .Great help .. – krish131

+0

@KrishnareddyNandyala 문제가 해결 될 때 도움이된다면 답을 받아주십시오. – Amarnath

+1

@Che yaa .. 나는 그것을했다.. 지금까지 나는 이것을 모른다. – krish131

관련 문제