2

でノードの選択について少しヒントを求める必要があります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)ラインも効果がありません。その裏には知られざる事実が隠されているに違いない…

誰かがこの問題を解決するためのヒントを教えてもらえますか?

4

0 に答える 0