我有一个带有多个屏幕的向导,用户必须在其中填写他/她的详细信息以进行进一步处理。在第二个屏幕上,我有一个带有三个单选按钮的单选组,这些单选按钮可以启用其他元素。要继续,用户必须选择其中之一。当用户选择第三个按钮时,JTree
填充数据的单选启用,用户必须从中选择一个选项。然后用户必须按“下一步”才能进入下一个屏幕。他\她选择的选项存储为TreePath
. 到现在为止还挺好。
我的问题如下。如果用户想从下一个屏幕返回到带有 a 的屏幕JTree
,我想为他\她提供JTree
已选择的选项的扩展并突出显示该选项。但是,无论我为此尝试做什么(任何组合expandPath
, scrollPathToVisible
, addSelectionPath
, makeVisible
)总是为我提供一棵倒塌的树。我尝试扩展叶子和节点。我的代码如下所示:
rbProcessJTree.setSelected(isProcessJTree());
if (null != getSelectedTablePath()){
trTables.addSelectionPath(getSelectedTablePath());
trTables.expandPath(getSelectedTablePath());
trTables.scrollPathToVisible(getSelectedTablePath());
}
调用时setSelected()
,将调用启用JTree
. 模型在表单初始化期间加载。
每次在屏幕之间切换时,我都会保存前一个屏幕的输入数据并处理它。然后,当我需要打开前一个屏幕时,我从下一个屏幕保存数据,处理它,将数据加载到这个屏幕并显示它。所以每次屏幕都是从头开始生成的。
您能否解释一下,必须执行哪些操作顺序才能JTree
在新创建的表单中进行扩展,加载数据模型并提供选择路径?