JTree线型和Nimbus

时间:2011-02-18 15:10:28

标签: java swing jtree nimbus

我正在使用Nimbus的外观和感觉。根据这个link,您应该能够使用JTree实现3种不同的线型:

enter image description here

使用以下代码时:


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

我的JTree看起来像这样:

enter image description here

它具有“无”样式而不是“水平”样式。知道为什么会这样吗?它与Nmbus有关吗?设置该属性后是否需要调用特殊的东西?

由于

3 个答案:

答案 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
}