0
由於一些奇怪的原因,當我在java中實現JTree
時,我在Mac OSX上看不到擴展線(角度)但是當樹擴展爲顯示所有節點時,我在Windows上看到它們。我試過tree.putClientProperty("JTree.lineStyle", "Angled")
,但我什麼也沒得到。JTree實現
第二個問題,再次在OSX上:我有一個根的圖片,也沒有完全顯示從頂部和底部切割的東西。
DefaultMutableTreeNode root = new DefaultMutableTreeNode(userId + " Album List");
albTree = new JTree(root);
albTree.setCellRenderer(new IconRenderer());
albTree.putClientProperty("JTree.lineStyle", "Angled");
albTree.setFont(new Font("Segoe UI", Font.PLAIN, 20));
albTreeModel = (DefaultTreeModel) albTree.getModel(); albTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
class IconRenderer extends DefaultTreeCellRenderer {
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
// start with default behavior
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
// customize based on local conditions/state
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
Icon openIcon = renderer.getDefaultOpenIcon();
Icon rootIcon = new ImageIcon("images/user-1.png");
if (node == nonAdminFrame.root) {
setIcon(rootIcon);
}
else if (nonAdminFrame.root.isNodeChild(node)) {
setIcon(openIcon);
}
return this;
}
}
斜角是跨平臺的LookAndFeel(MetalLookAndFeel) – mKorbel 2013-04-04 17:04:32
你有什麼建議? – jrdnsingh89 2013-04-04 17:07:20
我不是OSX用戶,如果屬實,你是否可以將你的代碼更改爲MetalLookAndFeel – mKorbel 2013-04-04 17:09:19