如何更新整个JTree

时间:2016-12-03 13:15:40

标签: java swing jtree

我有一个名为buildTree()的功能,可以构建我的Google云端硬盘文件夹的整个文件夹和文件树。

由于每个“Google Drive Entry”都有一个“Modified Timestamp”字段,我想构建一个动态树,使用基于这些时间戳的JSlider来查看该树中的更改。

为此,我有另一个名为buildTimedTree(timestamp)的函数,它应该根据作为参数传递的时间戳创建一个新树,并且只返回该时间戳之前的树。

这两个函数中的每一个都返回一个DefaultMutableTreeNode,它被认为是root节点。

我正在使用的代码如下。

JTree tree = new JTree(drive.buildTree());
tree.setBounds(148, 30, 463, 566);
scroll = new JScrollPane(tree);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroll.setBounds(148, 30, 463, 566);
frame.getContentPane().add(scroll);

//the slider has been created before
slider.addChangeListener(new ChangeListener() {
    public void stateChanged(ChangeEvent e) {
        JSlider source = (JSlider) e.getSource();
        Long timestamp = _table1.get(source.getValue());
        DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
        model.reload(buildTimedTree(timestamp));
    }
});

问题是,当我运行程序并移动滑块时,UI不会更新。

有什么意见吗?

0 个答案:

没有答案