bagaimana cara menyegarkan konten JTree di java?

Saya memiliki JTree yang menampilkan konten direktori tertentu. Ketika mengunduh beberapa file dengan ftp ke direktori ini saya ingin memberi tahu JTree saya tentang hal itu dan menyegarkan isinya. Bagaimana cara menyegarkan JTree setelah beberapa file ditambahkan atau dihapus dari direktori yang merupakan root untuk JTree?

btnRefreshContents.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            tree.getModel().
        }
    });

person itro    schedule 30.04.2012    source sumber


Jawaban (2)


Jika Anda menggunakan Java 7, Anda dapat menggunakan WatchService (FileSystem.newWatchService()) untuk mendeteksi perubahan pada sistem file. Berikut ini artikel tentang itu.

Untuk memperbarui komponen JTree, lihat halaman Stack Overflow.

person Greg Kopff    schedule 30.04.2012
comment
Anda benar, tetapi saya tidak punya pilihan lain. Saya harus menggunakan Java 1.5. Apakah ide yang baik untuk memuat ulang JTree dengan direktori yang sama lagi setelah menambahkan file ke dalamnya? - person itro; 30.04.2012

Anda dapat menambahkan pendengar direktori ke model pohon yang mendasarinya. Ada banyak solusi untuk itu. Seperti yang telah dinyatakan di atas, WatchService di Java 7 dapat bermanfaat. Namun karena Anda belum menggunakan Java 7, Anda dapat mencoba pendekatan lain:

JNotify - pustaka java yang memungkinkan aplikasi java mendengarkan kejadian sistem file. Berikut adalah contoh (pastikan Anda menambahkan ketergantungan dll/so ke jalur Anda.)

VFS dari Apache Commons. Commons VFS menyediakan API tunggal untuk mengakses berbagai sistem file yang berbeda. DefaultFileMonitor adalah contoh yang bagus.

person tenorsax    schedule 30.04.2012