ฉันสามารถตอบเฉพาะสิ่งที่ได้ผลสำหรับฉันเท่านั้น นักวิจารณ์คนอื่นได้ชี้ให้เห็นว่า Java GUIs โดยทั่วไปตกลงไปใน 'หุบเขาลึกลับ' ที่มีรูปลักษณ์และความรู้สึกที่ไม่เหมือนเจ้าของภาษาและฉันไม่โต้แย้งเรื่องนี้
ใช้ประโยชน์จาก API ของ Action มันช่วยให้คุณสามารถสรุปการกระทำที่แตกต่างกันที่ผู้ใช้ของคุณจะทำได้และช่วยให้คุณสามารถเชื่อมโยงกับทางลัดปุ่มเร่งความเร็วปุ่มและวัตถุอินพุตอื่น ๆ ได้ง่ายขึ้น
ใช้เครื่องมือจัดการโครงร่างที่เหมาะสม GridBagLayout นั้นทรงพลังมาก แต่ฉันจะบอกได้ว่ามันไม่สามารถทำความสะอาดได้หากไม่มีความคิดเห็นมากเกินไป เมื่อฉันเรียกใช้เครื่องมือวิเคราะห์รหัสแบบคงที่เช่น Sonar บนแอพ GUI รุ่นเก่าที่ฉันดูแลไว้มันจะชี้ให้เห็นถึงจำนวนเวทมนตร์จำนวนมหาศาลเพื่อให้การจัดวาง GridBags ถูกต้อง ฉันประสบความสำเร็จมากมายกับ GroupLayout ซึ่งหลีกเลี่ยงการระบุการจัดเรียงพิกเซลที่สมบูรณ์แบบ
หากคุณคิดว่าคุณต้องการ JDialog ...คุณอาจไม่ต้องการ กล่องโต้ตอบน่ากลัวในแง่ของประสบการณ์การใช้งาน - แอพพลิเคชั่นนี้ตัดสินใจใช้มันสำหรับทุกเมนูและทุกรูปแบบและเพื่อบังคับใช้กฎที่อยู่ด้านบนเสมอในรูปแบบที่แปลกประหลาด สิ่งนี้กลายเป็นฝันร้ายของการบำรุงรักษาเมื่อเราต้องการแจ้งเตือนบางสิ่งเกี่ยวกับเมนู คิวผิดหวังเมื่อคลิกที่กล่องข้อความที่ไม่สามารถโฟกัสได้และไม่สามารถยกเลิกได้
ใช้ SwingWorker แทนการทำมัลติเธรดของคุณเองตามความเหมาะสม เป็นเรื่องง่ายมากที่จะขยาย SwingWorker และทำงานที่ค้างยาวในขณะที่ให้การอัปเดตปกติกลับไปที่ GUI คิดว่าการดาวน์โหลดการอัพเดตไคลเอนต์ มันจะจัดการการจัดตารางเวลาเธรดผู้ปฏิบัติงานสำหรับคุณและให้คุณเผยแพร่เปอร์เซ็นต์การดาวน์โหลดกลับไปที่มุมมองเพื่อให้คุณสามารถอัปเดต ProgressBar ของคุณหรือสิ่งที่คุณมี
นั่นคือทั้งหมดที่ฉันสามารถแนะนำในประสบการณ์ที่ จำกัด ของฉันเป็นที่ยอมรับ