【发布时间】:2010-06-02 08:03:25
【问题描述】:
我有一个带有多个屏幕的向导,用户必须在其中填写他/她的详细信息以进行进一步处理。在第二个屏幕上,我有一个带有三个单选按钮的单选组,这些单选按钮可以启用其他元素。要继续,用户必须选择其中之一。当用户选择第三个按钮时,单选JTree 填充数据启用,用户必须从中选择一个选项。然后用户必须按“下一步”才能进入下一个屏幕。他\她选择的选项存储为TreePath。到目前为止一切顺利。
我的问题如下。如果用户想从下一个屏幕返回到带有JTree 的屏幕,我想为他\她提供JTree 扩展为已选择的选项并突出显示该选项。但是,无论我为此尝试做什么(expandPath、scrollPathToVisible、addSelectionPath、makeVisible 的任何组合)总是为我提供一棵折叠的树。我尝试扩展叶子和节点。我的代码如下所示:
rbProcessJTree.setSelected(isProcessJTree());
if (null != getSelectedTablePath()){
trTables.addSelectionPath(getSelectedTablePath());
trTables.expandPath(getSelectedTablePath());
trTables.scrollPathToVisible(getSelectedTablePath());
}
当调用setSelected() 时,将调用启用JTree 的状态更改侦听器。模型在表单初始化期间加载。
每次在屏幕之间切换时,我都会保存前一个屏幕的输入数据并进行处理。然后,当我需要打开前一个屏幕时,我从下一个屏幕保存数据,处理它,将数据加载到这个屏幕并显示它。所以每次屏幕都是从头开始生成的。
您能否解释一下,要在新创建的表单中扩展JTree,并加载数据模型并提供选择路径,必须执行哪些操作顺序?
【问题讨论】:
-
您好 Dzmitry Zhaleznichenka,您能回答您的问题吗?我也面临同样的问题,我已经在这里发布了
stackoverflow.com/questions/6252462/jtree-lazy-load-expand</…>请指教。