我正在使用Nimbus的外观和感觉。根据这个link,您应该能够使用JTree实现3种不同的线型:
使用以下代码时:
theTree.putClientProperty("JTree.lineStyle", "Horizontal");
我的JTree看起来像这样:
它具有“无”样式而不是“水平”样式。知道为什么会这样吗?它与Nmbus有关吗?设置该属性后是否需要调用特殊的东西?
由于
答案 0 :(得分:5)
我不相信Nimbus支持JTree.lineStyle
属性。只有MetalLookAndFeel可以。
查看javax.swing.plaf.synth.SynthTreeUI
(由Nimbus使用)和MetalTreeUI
(由Metal使用)的源代码。
更改为MetalLookAndFeel并查看它是否有效。
答案 1 :(得分:4)
原来你可以通过
获得一些效果NimbusLookAndFeel laf = new NimbusLookAndFeel();
UIManager.setLookAndFeel(laf);
nimbUID = laf.getDefaults();
nimbUID.put("Tree.drawHorizontalLines", true);
nimbUID.put("Tree.drawVerticalLines", true);
不完美,但很接近。
答案 2 :(得分: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
}