ฉันได้พัฒนา Swing GUI แบบง่ายๆ เพื่อให้ผู้ใช้สามารถแก้ไขข้อมูลแอปพลิเคชันของฉันได้ UI ค่อนข้างเรียบง่าย:
- JFrame ที่มี JTabbedPane
- แต่ละแท็บประกอบด้วยคลาสย่อยหนึ่งของ JPanel ที่มีเครื่องมือในการแก้ไขลักษณะของข้อมูล
- ข้อมูลนั้นอยู่ในออบเจ็กต์เดียวและการอ้างอิงจะถูกส่งผ่านไปยัง JPanels แต่ละรายการ
แต่มีปัญหา: ฉันต้องซิงค์ JPanels อื่น
ตัวอย่างเช่น ออบเจ็กต์ข้อมูลจะจัดเก็บรายชื่อบุคคลและรายการงาน
JPanel หนึ่งอันอนุญาตให้ผู้ใช้แก้ไขบุคคลได้ เขาสามารถสร้างบุคคลใหม่และลบบุคคลที่มีอยู่ได้
JPanel ตัวที่สองอนุญาตให้ผู้ใช้มอบหมายบุคคลให้กับงานได้
JPanels ทั้งสองจะเริ่มต้นได้เมื่อเปิดครั้งแรก ส่วนประกอบต่างๆ ถูกสร้างขึ้นและกำหนดเค้าโครงแล้ว ตอนนี้ผู้ใช้สามารถเริ่มทำงานกับ UI ได้แล้ว
- เขาเปิดแท็บแรกของ JTabbedPane และสร้างบุคคลแรก
- เขาเปิดแท็บที่สอง ส่วนประกอบของแท็บที่สองจะถูกเตรียมใช้งานและแสดงรายการบุคคลหนึ่งคนที่พร้อมใช้งาน เขามอบหมายงาน
- เขากลับไปที่แท็บแรกและสร้างบุคคลที่สอง
- เขาสลับกลับไปที่แท็บที่สองเพื่อจัดการกับคนใหม่
แต่แท็บที่สองและ JPanel ที่มีอยู่ในนั้นได้ถูกเตรียมใช้งานแล้ว ผู้ใช้จะไม่เห็นบุคคลที่สอง เว้นแต่ JPanel จะได้รับการอัปเดต ฉันได้ใช้วิธีการอัปเดตแบบกำหนดเองในคลาสย่อย JPanel ของฉันสำหรับแท็บ 2 แล้ว แต่ฉันจะเรียกมันว่าอย่างไร
ฉันต้องการเหตุการณ์ Swing ที่เริ่มทำงานบน Component เมื่อมันถูกวาดใหม่