จะรีเฟรชเนื้อหาของ JTree ใน java ได้อย่างไร?

ฉันมี JTree ที่แสดงเนื้อหาของไดเร็กทอรีเฉพาะ เมื่อดาวน์โหลดไฟล์บางไฟล์ที่มี ftp ไปยังไดเร็กทอรีนี้ ฉันต้องการให้ JTree ของฉันทราบและรีเฟรชเนื้อหาของเขา ฉันจะรีเฟรช JTree ได้อย่างไรหลังจากเพิ่มหรือลบไฟล์บางไฟล์ออกจากไดเร็กทอรีซึ่งเป็นรูทสำหรับ JTree

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

person itro    schedule 30.04.2012    source แหล่งที่มา


คำตอบ (2)


หากคุณใช้ Java 7 คุณสามารถใช้ WatchService (FileSystem.newWatchService()) เพื่อตรวจจับการเปลี่ยนแปลงของระบบไฟล์ นี่คือ บทความเกี่ยวกับเรื่องนี้

หากต้องการอัปเดตองค์ประกอบ JTree ลองดูที่ หน้า Stack Overflow

person Greg Kopff    schedule 30.04.2012
comment
คุณพูดถูก แต่ฉันไม่มีทางเลือกอื่น ฉันต้องใช้ Java 1.5 เป็นความคิดที่ดีหรือไม่ที่จะโหลด JTree ด้วยไดเร็กทอรีเดียวกันอีกครั้งหลังจากเพิ่มไฟล์เข้าไปแล้ว? - person itro; 30.04.2012

คุณสามารถเพิ่มไดเร็กทอรี Listener ให้กับโมเดลทรีต้นแบบได้ มีวิธีแก้ไขปัญหามากมายสำหรับสิ่งนั้น ตามที่ระบุไว้แล้ว ด้านบน WatchService ใน Java 7 อาจมีประโยชน์ได้ แต่เนื่องจากคุณยังไม่ได้อยู่ที่ Java 7 คุณสามารถลองใช้วิธีอื่นได้:

JNotify - ไลบรารี Java ที่อนุญาตให้แอปพลิเคชัน Java ฟังเหตุการณ์ระบบไฟล์ นี่คือ ตัวอย่าง (ตรวจสอบให้แน่ใจว่าคุณเพิ่มการพึ่งพา dll/so ให้กับเส้นทางของคุณ)

VFS จาก Apache Commons Commons VFS มี API เดียวสำหรับการเข้าถึงระบบไฟล์ต่างๆ DefaultFileMonitor เป็นตัวอย่างที่ดี

person tenorsax    schedule 30.04.2012