dès maintenant J'établis la présentation Nimbus à une application déjà utilisée depuis un certain temps. L'application contient quelques JTree
s dont je veux avoir à afficher les lignes verticales et horizontales.Erreur de présentation Nimbus JTree sous la version java 1.8
Dans la version java 1.7 que j'ai utilisé plus tôt c'était facile à mettre en place avec les entrées spécifiques dans le UIDefaults
:
UIManager.put("Tree.drawVerticalLines", true);
et
UIManager.put("Tree.drawHorizontalLines", true);
Comme implicite ci-dessus cela fonctionne totalement bien tant que j'utilise un jre avec la version 1.7, dès que j'utilise 1.8 les lignes verticales dans le JTree
ne seront pas affichées.
Je voulais juste demander si quelqu'un sait si c'est un problème connu de Nimbus sous Java 1.8 et si oui, quelqu'un sait-il une solution ou une solution à ce problème?
EDIT: Voici quelques exemples de code pour clarifier mon problème:
public class test
{
public static void main(String args[]) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException
{
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
UIManager.put("Tree.drawVerticalLines", true);
UIManager.put("Tree.drawHorizontalLines", true);
UIManager.put("Tree.linesStyle", "dashed");
DefaultMutableTreeNode top = new DefaultMutableTreeNode("Root");
top.add(new DefaultMutableTreeNode("Branch1"));
top.add(new DefaultMutableTreeNode("Branch2"));
top.add(new DefaultMutableTreeNode("Branch3"));
((DefaultMutableTreeNode)top.getFirstChild()).add(new DefaultMutableTreeNode("Leaf1"));
((DefaultMutableTreeNode)top.getFirstChild()).add(new DefaultMutableTreeNode("Leaf2"));
JFrame frame = new JFrame();
JTree tree = new JTree(top);
frame.setSize(new Dimension(450,300));
JScrollPane scroll = new JScrollPane(tree);
frame.add(scroll);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Ceci est juste un exemple de code, pas le logiciel lui-même, je travaille actuellement, donc je pense que la question est à une erreur J'ai fait dans les deux codes ou son un problème avec la version java 1.8.
L'utilisation de jdk1.7 et jdk1.8 conduit à deux résultats différents:
jdk1.7
jdk1.8
Comme vous le pouvez voir les lignes horizontales dans la version 1.8 sont manquantes.
Désolé pour la mauvaise grammaire, je ne suis pas un locuteur natif.
Pour une meilleure aide plus rapidement, postez un [MCVE] ou [Short, Self Contained, Example correct] (http://www.sscce.org/). –