SWING - เลย์เอาต์

Layout หมายถึงการจัดเรียงส่วนประกอบภายในคอนเทนเนอร์ ในอีกวิธีหนึ่งอาจกล่าวได้ว่าเค้าโครงกำลังวางส่วนประกอบไว้ที่ตำแหน่งใดตำแหน่งหนึ่งภายในคอนเทนเนอร์ งานจัดวางส่วนควบคุมจะดำเนินการโดยอัตโนมัติโดย Layout Manager

ตัวจัดการเค้าโครง

ตัวจัดการโครงร่างจะวางตำแหน่งส่วนประกอบทั้งหมดภายในคอนเทนเนอร์โดยอัตโนมัติ แม้ว่าคุณจะไม่ได้ใช้ตัวจัดการโครงร่างส่วนประกอบก็ยังคงอยู่ในตำแหน่งโดยตัวจัดการโครงร่างเริ่มต้น เป็นไปได้ที่จะจัดวางส่วนควบคุมด้วยมืออย่างไรก็ตามมันยากมากเนื่องจากสองเหตุผลต่อไปนี้

  • เป็นเรื่องที่น่าเบื่อมากที่ต้องจัดการกับตัวควบคุมจำนวนมากภายในคอนเทนเนอร์

  • โดยปกติจะไม่มีการให้ข้อมูลความกว้างและความสูงของส่วนประกอบเมื่อเราต้องการจัดเรียง

Java จัดเตรียมตัวจัดการโครงร่างต่างๆเพื่อวางตำแหน่งการควบคุม คุณสมบัติเช่นขนาดรูปร่างและการจัดเรียงจะแตกต่างกันไปในแต่ละตัวจัดการโครงร่าง เมื่อขนาดของแอพเพล็ตหรือหน้าต่างแอปพลิเคชันเปลี่ยนไปขนาดรูปร่างและการจัดเรียงของส่วนประกอบก็เปลี่ยนไปตามการตอบสนองเช่นกันผู้จัดการเค้าโครงจะปรับให้เข้ากับขนาดของ appletviewer หรือหน้าต่างแอปพลิเคชัน

ตัวจัดการโครงร่างเชื่อมโยงกับออบเจ็กต์คอนเทนเนอร์ทุกชิ้น ตัวจัดการโครงร่างแต่ละตัวเป็นอ็อบเจ็กต์ของคลาสที่ใช้อินเทอร์เฟซ LayoutManager

ต่อไปนี้เป็นอินเทอร์เฟซที่กำหนดฟังก์ชันการทำงานของ Layout Managers

ซีเนียร์ อินเทอร์เฟซและคำอธิบาย
1 LayoutManager

อินเทอร์เฟซ LayoutManager ประกาศวิธีการเหล่านั้นซึ่งจำเป็นต้องนำไปใช้โดยคลาสซึ่งอ็อบเจ็กต์จะทำหน้าที่เป็นตัวจัดการเลย์เอาต์

2 LayoutManager2

LayoutManager2 เป็นส่วนต่อประสานย่อยของ LayoutManager อินเทอร์เฟซนี้มีไว้สำหรับคลาสเหล่านั้นที่ทราบวิธีการจัดวางคอนเทนเนอร์ตามอ็อบเจ็กต์ข้อ จำกัด ของโครงร่าง

คลาส AWT Layout Manager

ต่อไปนี้เป็นรายการตัวควบคุมที่ใช้กันทั่วไปขณะออกแบบ GUI โดยใช้ AWT

ซีเนียร์ LayoutManager และคำอธิบาย
1 BorderLayout

โครงร่างเส้นขอบจัดวางองค์ประกอบให้พอดีกับ 5 ภูมิภาค ได้แก่ ตะวันออกตะวันตกเหนือใต้และตรงกลาง

2 การ์ดเลย์เอาต์

ออบเจ็กต์ CardLayout ถือว่าแต่ละองค์ประกอบในคอนเทนเนอร์เป็นการ์ด สามารถมองเห็นการ์ดได้ครั้งละหนึ่งใบเท่านั้น

3 FlowLayout

FlowLayout เป็นเค้าโครงเริ่มต้น จัดวางส่วนประกอบในทิศทางการไหล

4 GridLayout

GridLayout จัดการส่วนประกอบในรูปแบบของตารางสี่เหลี่ยม

5 GridBagLayout

นี่คือคลาสตัวจัดการเลย์เอาต์ที่ยืดหยุ่นที่สุด วัตถุของ GridBagLayout จะจัดแนวองค์ประกอบในแนวตั้งแนวนอนหรือตามแนวพื้นฐานโดยไม่ต้องใช้ส่วนประกอบที่มีขนาดเท่ากัน

6 GroupLayout

GroupLayout จัดกลุ่มคอมโพเนนต์ตามลำดับชั้นเพื่อวางตำแหน่งในคอนเทนเนอร์

7 SpringLayout

SpringLayout จะวางตำแหน่งชายด์ของคอนเทนเนอร์ที่เกี่ยวข้องตามชุดของข้อ จำกัด