2011-02-18 4 views
6

Nimbus의 룩앤필을 사용하고 있습니다. 이 link에 따르면, 당신은 당신의 JTree로 3 개 가지 선 스타일을 달성 할 수 있어야한다 :JTree Line 스타일 및 Nimbus

enter image description here

다음 코드를 사용하는 동안 :

 

theTree.putClientProperty("JTree.lineStyle", "Horizontal"); 
 

내의 JTree는 다음과 같습니다

"없음"스타일이며 "수평"스타일이 아닙니다. 왜 이런 생각일까요? Nmbus와 관련이 있습니까? 이 속성을 설정 한 후에 특별한 것을 부를 필요가 있습니까?

감사

+0

Netbeans를 사용하고 있습니까? –

+0

@Stack 예, 그렇습니다. 그러나 제 Jree는 관습입니다. GUI 편집기는 사용하지 않습니다. – user489041

+0

잘 모르겠습니다. 이 [게시물] (http://stackoverflow.com/questions/1347607/netbeans-jtree-linestyle)을 확인하십시오. setUI 및 updateUI를 오버라이드 (override)하는 것을 추천합니다. –

답변

5

나는 후광이 JTree.lineStyle 속성을 지원 믿지 않는다. 오직 MetalLookAndFeel만이합니다.

javax.swing.plaf.synth.SynthTreeUI (Nimbus에서 사용)과 MetalTreeUI (Metal에서 사용)의 소스 코드를 살펴보십시오.

MetalLookAndFeel로 변경하고 작동하는지 확인하십시오.

+0

흥미 롭습니다. 나는 그것을 Metal LaF로 바꾸었고 작동했다. Nimbus가 그들을 지원하지 못하게하는 종류 – user489041

+0

나는 Nimbus와 이것을하기 위해 이전에 노력했지만 Nimbus가 그것을 지원하는 방법을 찾지 못했습니다. 나는 dogbane의 대답에 동의한다. – jzd

+0

사용자 정의 렌더러를 사용하여이 작업을 수행해 보았습니까? –

4

는 완벽하지만 닫지

NimbusLookAndFeel laf = new NimbusLookAndFeel(); 
UIManager.setLookAndFeel(laf); 
nimbUID = laf.getDefaults(); 
nimbUID.put("Tree.drawHorizontalLines", true); 
nimbUID.put("Tree.drawVerticalLines", true); 

을 수행하여이 효과의 일부를 얻을 수 있습니다 밝혀졌습니다.

0

아직 관심이있는 사람 :

다음 스 니펫이 저에게 효과적입니다.

NewNimbusLookAndFeel laf = new NewNimbusLookAndFeel(); 

UIDefaults defs = laf.getDefaults(); 
defs.put("Tree.drawHorizontalLines", true); 
defs.put("Tree.drawVerticalLines", true); 
defs.put("Tree.linesStyle", "dashed"); 

try { 
    UIManager.setLookAndFeel(laf); 
} catch (UnsupportedLookAndFeelException e) { 
    //Error handling code 
}