7
votes

Style de ligne Jtree et Nimbus

J'utilise le nimbus. Selon ce lien , vous devriez être capable d'atteindre 3 styles de ligne différentes avec votre jtree:

Entrez la description de l'image ici

en utilisant Le code suivant: xxx

mon jtree ressemble à ceci:

 Entrez la description de l'image ici

Il a le style" Aucun "et non le style" horizontal ". Une idée pourquoi cela pourrait être? At-il quelque chose à voir avec nmbus? Dois-je appeler quelque chose de spécial après avoir défini cette propriété?

merci


2 commentaires

@Stact oui je suis. Cependant mon jtree est personnalisé. Il n'utilise pas l'éditeur d'interface graphique.


Je ne suis pas sûr alors. Découvrez ce POST . La recommandation est de remplacer SETUI et UPTACHII.


3 Réponses :


6
votes

Je ne crois pas que Nimbus prend en charge la propriété jtree.linestyle . Seul le métallookandfeel fait.

Vérifiez le code source pour javax.swing.plaf.synth.synthtreeui (qui est utilisé par Nimbus) et metaltreeui (qui est utilisé par métal) .

changer en métallookandfeel et voir si cela fonctionne.


4 commentaires

Intéressant. Je l'ai changé à Métal Laf et j'ai travaillé. Sorte de laisser tomber que Nimbus ne les apporte pas


J'ai essayé de le faire avec Nimbus avant et que je ne pouvais pas trouver une façon dont Nimbus le soutenait. Je suis d'accord avec la réponse de Dogbane.


@eugener non, je n'ai pas eu. Pourriez-vous fournir des liens ou des détails?


En bref ... Vous créez votre propre rendu de cellule d'arbre en héritant de la méthode de peinture existante et de la pure-prépondérante pour dessiner la ligne ou en mettant le composant Jlabel de rendu par défaut sur le panneau et en ajoutant un séparateur au bas du panneau. Voici un lien du tutoriel de swing sur les rénédénéreurs de cellules d'arbre (faites défiler un peu): Download.Orcle.com/javase/Tutorial/uiswing/Components/ ... Faites-moi savoir si vous avez besoin de plus d'informations à ce sujet.



5
votes

s'avère que vous pouvez obtenir une partie de cet effet en faisant xxx

pas parfait, mais proche.


0 commentaires

1
votes

Pour toute personne intéressée toujours par ceci:

L'extrait suivant fonctionne pour moi. P>

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
}


0 commentaires