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 จะวางตำแหน่งชายด์ของคอนเทนเนอร์ที่เกี่ยวข้องตามชุดของข้อ จำกัด |