我有一个名为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不会更新。
有什么意见吗?