我创建了一个" FileTree"通过JTree显示文件系统的类,只显示文件夹和" .xlsx"或" .xls"文件。我希望能够为DefaultMutableTreeNodes添加双击动作,如果它们是" .xlsx"或" .xls"文件。似乎无法将ActionListener或MouseListener添加到DefaultMutableTreeNode,有没有办法可以控制这些节点上的双击动作?
答案 0 :(得分:1)
我有各种各样的解决方案,它不是我想要的解决方案,但确实有效。
我已经向JTree添加了一个MouseListener,然后当点击次数为2时,我检查事件源是JTree的一个实例,然后调用
Object comp = tree.getLastSelectedPathComponent();
if (comp instanceof FileTreeNode)
{
FileTreeNode ftn = (FileTreeNode) comp;
File file = ftn.getFile();
}
然后我可以用文件做任何我想做的事情。 FileTreeNode是DefaultMutableTreeNode的扩展,它包含该节点上的文件。