でノードの選択について少しヒントを求める必要がありますJXTreeTable
。
それにいくつかのノードを追加し、プログラムでデフォルトとして 1 つのノードを選択したいと考えています。ノードを選択するための私のテスト関数は次のようになります。
public void setSelectionTest()
{
Object dfltObj;
TreeSelectionModel tsm = jttRulesSet.getTreeSelectionModel();
TreeTableModelRules ttm = (TreeTableModelRules)jttRulesSet.getTreeTableModel();
TreePath tp;
dfltObj = ttm.getChild(ttm.getRoot(), 0);
if( (dfltObj != null) )
{
System.out.println("Node to select: " + dfltObj.getClass());
tp = new TreePath(dfltObj);
tsm.setSelectionPath(tp);
jttRulesSet.scrollPathToVisible(tp);
}
効果を検証するための私のテスト関数:
public void getSelectionTest()
{
TreeSelectionModel tsm;
TreePath treeSelPath;
Object dfltNode;
tsm = jttRulesSet.getTreeSelectionModel(); // get treeselectionmodel
treeSelPath = tsm.getSelectionPath(); // get selected path
if(treeSelPath != null)
{
dfltNode = treeSelPath.getLastPathComponent();
System.out.println("Selected node: " + ((RulesSet) dfltNode).getName()); // info bout the selected path
System.out.println("Selected node: " + tsm.getSelectionCount());
}
}
選択した行の名前と番号を取得します。ここまではOK。しかし、JXTreeTable
ショーは選択されていません。jttRulesSet.expandPath(tp)
ラインも効果がありません。その裏には知られざる事実が隠されているに違いない…
誰かがこの問題を解決するためのヒントを教えてもらえますか?