我使用的是Nimbus的外觀和感覺。根據這一link,你應該能夠實現3種不同的線條樣式與您的JTree:JTree線條樣式和Nimbus
在使用下面的代碼:
theTree.putClientProperty("JTree.lineStyle", "Horizontal");
我的JTree看起來是這樣的:
它具有「無」風格而不是「水平」風格。任何想法,爲什麼這可能是?它與Nmbus有什麼關係?設置該屬性後,是否需要調用特別的東西?
感謝
我使用的是Nimbus的外觀和感覺。根據這一link,你應該能夠實現3種不同的線條樣式與您的JTree:JTree線條樣式和Nimbus
在使用下面的代碼:
theTree.putClientProperty("JTree.lineStyle", "Horizontal");
我的JTree看起來是這樣的:
它具有「無」風格而不是「水平」風格。任何想法,爲什麼這可能是?它與Nmbus有什麼關係?設置該屬性後,是否需要調用特別的東西?
感謝
我不相信靈光支持JTree.lineStyle
財產。只有MetalLookAndFeel可以。
查看javax.swing.plaf.synth.SynthTreeUI
(由Nimbus使用)和MetalTreeUI
(由Metal使用)的源代碼。
更改爲MetalLookAndFeel並查看它是否有效。
原來你可以通過做
NimbusLookAndFeel laf = new NimbusLookAndFeel();
UIManager.setLookAndFeel(laf);
nimbUID = laf.getDefaults();
nimbUID.put("Tree.drawHorizontalLines", true);
nimbUID.put("Tree.drawVerticalLines", true);
並不完美,但接近弄點這個效果。
對於仍然對此感興趣的人:
以下代碼段正在爲我工作。
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
}
您使用Netbeans嗎? – 2011-02-18 15:18:12
@Stack是的,我是。但是我的JTree是自定義的。它不使用GUI編輯器。 – user489041 2011-02-18 15:19:54