Viết chương trình sử dụng JTree để hiển thị cây thư mục java.
Xem thêm:
1. Mô tả yêu cầu
Đề bài: Viết chương trình hiển thị cấu trúc thư mục giống một file explorer đơn giản sử dụng Java Swing.
Ứng dụng có các chức năng sau:
1. Mở file và hiển thị đường dẫn của file được mở lên giao diện.
2. Hiển thị cấu trúc thư mục dưới dạng cây (tree) từ đường dẫn được chọn.
Video hướng dẫn:
2. Class chọn thư mục hiển thị
private void btnOpenPathActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser filechooser = new JFileChooser(); filechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int result = filechooser.showOpenDialog(this); if(result == JFileChooser.APPROVE_OPTION){ String path = filechooser.getSelectedFile().getAbsolutePath(); txtPath.setText(path); listFileAll(path); } }
Chi tiết từng dòng code:
JFileChooser filechooser = new JFileChooser()
: Tạo một đối tượngJFileChooser
để mở hộp thoại chọn đường dẫn.filechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY)
: Thiết lập chế độ chỉ chọn thư mục, không chọn file.int result = filechooser.showOpenDialog(this)
: Hiển thị hộp thoại chọn đường dẫn và gán kết quả trả về vào biến result.if (result == JFileChooser.APPROVE_OPTION)
: Kiểm tra xem người dùng đã chọn một thư mục hay không (nếu nhấn OK).String path = filechooser.getSelectedFile().getAbsolutePath()
: Lấy đường dẫn tuyệt đối của thư mục được chọn.txtPath.setText(path)
: Hiển thị đường dẫn trong trường văn bản txtPath.listFileAll(path)
: Gọi hàm listFileAll để hiển thị danh sách các tệp trong thư mục được chọn.
3. Liệt kê thư mục java
private void listFileAll(String path) { // Tạo một đối tượng File từ đường dẫn được chọn File myFile = new File(path); // Tạo nút gốc cho cây thư mục với tên của thư mục được chọn DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(myFile.getName()); // Duyệt qua tất cả các tệp tin và thư mục trong thư mục được chọn for (File f : myFile.listFiles()) { // Tạo nút con cho mỗi tệp tin hoặc thư mục DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(f.getName()); // Thêm nút con vào nút gốc rootNode.add(childNode); // Nếu là thư mục, thêm các nút con bổ sung cho thư mục đó if (f.isDirectory()) { addSubNodes(childNode, f); } } // Tạo một mô hình cây mới với nút gốc và đặt nó cho JTree DefaultTreeModel defaultTreeModel = new DefaultTreeModel(rootNode); jTree.setModel(defaultTreeModel); } private void addSubNodes(DefaultMutableTreeNode parentNode, File parentFile) { // Duyệt qua tất cả các tệp tin và thư mục trong thư mục cha for (File f : parentFile.listFiles()) { // Tạo nút con cho mỗi tệp tin hoặc thư mục DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(f.getName()); // Thêm nút con vào nút cha parentNode.add(childNode); // Nếu là thư mục, đệ quy thêm các nút con bổ sung cho thư mục đó if (f.isDirectory()) { addSubNodes(childNode, f); } } }
Trên đây là hướng dẫn sử dụng jtree để hiển thị cấu trúc thư mục máy tính. Cảm ơn bạn đã tham khảo bài tập lập trình hướng đối tượng Java trên ttnguyen.net.
Source code:
Bài viết liên quan:
- đổi tên file trong java
- đọc ghi file đơn giản với FileInputStream và FileOutputStream
- nhập xuất mảng trong java từ bàn phím