JTree Line Style и Nimbus - PullRequest
       6

JTree Line Style и Nimbus

7 голосов
/ 18 февраля 2011

Я использую Nimbus. Согласно этой ссылке , вы должны иметь возможность достигать 3 различных стилей линий с вашим JTree:

enter image description here

При использовании следующего кода:


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

Мой JTree выглядит так:

enter image description here

Он имеет стиль «Нет», а не «Горизонтальный». Есть идеи, почему это может быть? Это как-то связано с Nmbus? Нужно ли вызывать что-то особенное после установки этого свойства?

Спасибо

Ответы [ 3 ]

6 голосов
/ 18 февраля 2011

Я не верю, что Nimbus поддерживает свойство JTree.lineStyle.Только MetalLookAndFeel.

Взгляните на исходный код для javax.swing.plaf.synth.SynthTreeUI (который используется Nimbus) и MetalTreeUI (который используется Metal).

Измените на MetalLookAndFeelи посмотрим, работает ли он.

5 голосов
/ 28 апреля 2012

Оказывается, вы можете получить часть этого эффекта, выполнив

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

Не идеально, но близко.

1 голос
/ 02 декабря 2014

Для всех, кто еще заинтересован в этом:

Следующий фрагмент кода работает для меня.

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
}
...