gerade bin ich dabei, das Nimbus Look and Feel für eine Anwendung zu etablieren, die schon seit einiger Zeit verwendet wird. Die Anwendung enthält einige JTree
s, die ich vertikale und horizontale Linien anzeigen lassen möchte.Nimbus JTree-Präsentationsfehler unter Java-Version 1.8
Unter Java-Version 1.7, die ich früher verwendet wurde, war dies einfach mit diesen spezifischen Einträge in der UIDefaults
einzurichten:
UIManager.put("Tree.drawVerticalLines", true);
und
UIManager.put("Tree.drawHorizontalLines", true);
Wie oben angedeutet, funktioniert das völlig einwandfrei, solange ich ein jre mit der Version 1.7 verwende, sobald ich 1.8 benutze, werden die vertikalen Linien in der JTree
nicht angezeigt.
Ich wollte nur fragen, ob jemand weiß, ob dies ein bekanntes Problem von Nimbus unter Java 1.8 ist und wenn ja, weiß jemand eine Lösung oder Abhilfe für dieses Problem?
EDIT: Hier einige Beispiel-Code mein Problem zu klären:
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);
}
}
Dies ist nur ein Beispiel-Code, nicht die eigentliche Software, die ich derzeit arbeite, so denke ich, das Problem bis zu einem Fehler ist Ich habe in beiden Codes oder es ist ein Problem mit der Java-Version 1.8.
Die Nutzung von jdk1.7 und jdk1.8 führt zu zwei unterschiedlichen Ergebnissen:
jdk1.7
jdk1.8
Wie Sie können siehe die horizontalen Linien in der 1.8-Version fehlen.
Sorry für schlechte Grammatik, ich bin kein Muttersprachler.
Für bessere Hilfe, früher, ein [MCVE] oder [kurze, selbständige, korrekte Beispiel] (http://www.sscce.org/). –