ユーザーがさらに処理するために詳細を入力する必要があるいくつかの画面を持つウィザードがあります。2 番目の画面には、追加要素を有効にする 3 つのラジオ ボタンを含むラジオ グループがあります。続行するには、ユーザーはそれらのいずれかを選択する必要があります。ユーザーが 3 番目のボタンを選択すると、データが入力された単一選択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
データモデルがロードされ、選択パスが提供された状態で、新しく作成されたフォームで展開するために実行する必要がある操作のシーケンスを教えてください。