ฉันจะทำให้ฟังก์ชันขยายทั้งหมดและยุบทั้งหมดสำหรับ SWT Tree ของฉันเองได้อย่างไร ซึ่งคล้ายกับปุ่มยุบทั้งหมดใน Package Explorer ของ Eclipse
Java SWT Tree ขยายทั้งหมด / ยุบทั้งหมด
คำตอบ (1)
หากคุณเพียงแค่ใช้ SWT Tree
คุณต้องวนซ้ำรายการทั้งหมดในแผนผังและขยาย / ยุบแต่ละรายการ ตัวอย่างเช่น:
boolean expanded = true to expand, false to collapse
Tree tree = ... your tree
tree.setRedraw(false); // Stop redraw until operation complete
TreeItem [] items = tree.getItems();
for (TreeItem item : items) {
item.setExpanded(expanded);
}
tree.setRedraw(true);
หากคุณใช้ JFace TreeViewer
ให้เรียกวิธีการดู collapseAll
หรือ expandAll
person
greg-449
schedule
04.11.2016
หากคุณกำลังใช้ JFace TreeViewer โปรดทราบว่า มีจุดบกพร่องที่ทำให้เกิด ตัวชี้เมาส์จะกะพริบเมื่อขยายต้นไม้ใหญ่ วิธีแก้ปัญหาคือการเรียก
expandAll()
จาก runable ที่ส่งผ่านไปยัง BusyIndicator::showWhile()
- person Rüdiger Herrmann; 04.11.2016
ทำไมคุณต้องหยุด redrwaw จนกว่าการดำเนินการจะเสร็จสมบูรณ์?
- person eliaspr; 10.08.2017
@ Professor901 มันหยุดการขยายของแต่ละบุคคลที่ถูกแยกออกจากกัน ทำให้สิ่งต่าง ๆ ช้าลงและอาจทำให้เกิดการกะพริบ
- person greg-449; 10.08.2017