49 if (!rootDir.exists()) {
53 DefaultMutableTreeNode rootNode =
new DefaultMutableTreeNode(
new FileNode(rootDir));
57 treeModel =
new DefaultTreeModel(rootNode);
60 fileTree.addMouseListener(
new MouseAdapter() {
61 public void mousePressed(MouseEvent e) {
62 if (SwingUtilities.isRightMouseButton(e)) {
63 int selRow =
fileTree.getRowForLocation(e.getX(), e.getY());
70 public void mouseClicked(MouseEvent e) {
71 if (e.getClickCount() == 2) {
76 JScrollPane scrollPane =
new JScrollPane(
fileTree);
77 scrollPane.setBorder(BorderFactory.createEmptyBorder());
78 add(scrollPane, BorderLayout.CENTER);
87 private void buildTree(File file, DefaultMutableTreeNode node) {
88 File[] list = file.listFiles();
89 if (list ==
null)
return;
91 Arrays.sort(list, (a, b) -> {
92 if (a.isDirectory() && !b.isDirectory())
return -1;
93 if (!a.isDirectory() && b.isDirectory())
return 1;
94 return a.getName().compareToIgnoreCase(b.getName());
98 DefaultMutableTreeNode child =
new DefaultMutableTreeNode(
new FileNode(f));
100 if (f.isDirectory())
buildTree(f, child);