【发布时间】:2018-11-28 02:39:24
【问题描述】:
我正在尝试实现一个两边都有滚动窗格的拆分窗格。左侧应显示我正在尝试实现的 JTree,但它不工作并且我看不到树。
我不确定我做错了什么。我的代码是这样的:
public class SplitPane extends JFrame {
DefaultTreeModel treeModel;
JEditorPane editorPane = new JEditorPane();
DefaultMutableTreeNode Root;
JTree tree;
JScrollPane leftscrollPane;
JScrollPane rightscrollPane;
public SplitPane() {
setSize(600,400);
tree = new JTree(Root);
Root = new DefaultMutableTreeNode("");
setTree(); // I connect all the nodes here
treeModel = new DefaultTreeModel(Root);
tree = new JTree(Root);
tree.setRootVisible(false);
leftscrollPane = new JScrollPane(tree);
rightscrollPane = new JScrollPane(editorPane);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
splitPane.setLeftComponent(leftscrollPane);
splitPane.setRightComponent(rightscrollPane);
splitPane.setDividerLocation(160);
setVisible(true);
splitPane.setPreferredSize(new Dimension(600,400));
getContentPane().add(splitPane);
}
}
然后初始化,我就做SplitPane newpane = new SplitPane();
我认为我已经正确添加了所有节点,因为当我这样做时
Enumeration e = Root.preorderEnumeration();
while(e.hasMoreElements()) {
System.out.println(e.nextElement());
}
我按顺序查看所有节点。
我做错了什么?非常感谢一些帮助和反馈!
【问题讨论】:
-
首先将
setVisible(true);移动为您执行的最后一个命令 -
确保
Root实际上包含任何子项。您可以通过tree.setRootVisible(false);tree.setRootVisible(true);进行快速测试 -
你应该添加你的
setTree();方法。 -
感谢您的反馈!
标签: java swing jscrollpane jtree splitpane