1

JTree を介してファイル システムを表示し、フォルダと「.xlsx」または「.xls」ファイルのみを表示する「FileTree」クラスを作成しました。「.xlsx」または「.xls」ファイルの場合、DefaultMutableTreeNodes にダブルクリック アクションを追加できるようにしたいと考えています。ActionListener または MouseListener を DefaultMutableTreeNode に追加することはできないようですが、これらのノードでダブルクリック アクションを制御する方法はありますか?

4

1 に答える 1

1

私はある種の解決策を持っています。それは私が探していたものではありませんが、うまくいきます。

JTree に MouseListener を追加し、クリック数が 2 のときに、イベント ソースが JTree のインスタンスであることを確認してから、

Object comp = tree.getLastSelectedPathComponent();
if (comp instanceof FileTreeNode)
{
    FileTreeNode ftn = (FileTreeNode) comp;
File file = ftn.getFile();
}

そうすれば、そのファイルでやりたいことを何でもできます。FileTreeNode は、そのノードにファイルを含む DefaultMutableTreeNode の拡張です。

于 2012-12-02T16:10:12.047 に答える