ในการออกแบบอินเทอร์เฟซจะต้องวางภาชนะไว้ในส่วนประกอบหลายอย่าง Java.AWT กำหนดคลาสเลย์เอาต์ที่หลากหลายแต่ละคลาสเลย์เอาต์สอดคล้องกับกลยุทธ์การจัดวาง หมวดหมู่เค้าโครงต่อไปนี้:
• Flowlayout วางส่วนประกอบไว้ในทางกลับกัน
• BoarderLayout วางส่วนประกอบไว้ในขอบเขต
• cardlayout ส่วนประกอบสแต็กเช่นการ์ดโป๊กเกอร์และสามารถแสดงส่วนประกอบใดส่วนหนึ่งได้ในแต่ละครั้งเท่านั้น
• Gridlayout แบ่งพื้นที่แสดงผลออกเป็นกริดเท่ากันตามเส้นและคอลัมน์และส่วนประกอบจะถูกวางไว้ในกริดเหล่านี้
• Gridbaglayout แบ่งพื้นที่แสดงผลเป็นหน่วยเล็ก ๆ จำนวนมากและแต่ละองค์ประกอบสามารถครอบครองหน่วยเล็ก ๆ หนึ่งหน่วยขึ้นไป
ในหมู่พวกเขา Gridbaglayout สามารถควบคุมตำแหน่งที่ดีและซับซ้อนที่สุด
แต่ละคอนเทนเนอร์มีตัวจัดการเค้าโครงและตัดสินใจว่าจะจัดเรียงส่วนประกอบในคอนเทนเนอร์อย่างไร ตัวจัดการเลย์เอาต์เป็นคลาสที่ใช้อินเตอร์เฟส layoutManager
1. การจัดวาง FlowLayout
เค้าโครง flowlayout คือการจัดเรียงส่วนประกอบจากซ้ายไปขวาตามลำดับของการเพิ่มจากนั้นถ่ายโอนไปยังบรรทัดเพื่อดำเนินการต่อจากซ้ายไปขวาหลังจากหนึ่งบรรทัดและส่วนประกอบในแต่ละบรรทัดจะถูกจัดเรียงตรงกลาง นี่คือกลยุทธ์การจัดวางที่ง่ายที่สุด
Flowlayout เป็นเค้าโครงเริ่มต้นของแอปพลิเคชันขนาดเล็กและแผง
1. FlowLayout () สร้างเค้าโครง flowlayout เริ่มต้น โดยค่าเริ่มต้นส่วนประกอบอยู่ตรงกลางมี 5 พิกเซล
2. flowlayout (int aligment) ตั้งค่าวิธีการจัดตำแหน่งของแต่ละองค์ประกอบ การจัดตำแหน่งสามารถใช้ได้สำหรับ flowlayout.left, flowlayout.center, flowlayout.richt
3. FlowLayout (Int Aligment, Int Horz, Int Vert), ตั้งค่าวิธีการจัดตำแหน่งและตั้งค่าระยะห่างแนวนอน Horz และระยะห่างระยะห่างแนวตั้งของส่วนประกอบตั้งค่าเค้าโครงของคอนเทนเนอร์ด้วยวิธีการของคอนเทนเนอร์ super -class ตัวอย่างเช่นรหัส setLayout (ใหม่ flowlayout ()) ตั้งค่าเค้าโครง flowlayout สำหรับคอนเทนเนอร์ วิธีการเพิ่มส่วนประกอบลงในคอนเทนเนอร์คือเพิ่ม (ชื่อส่วนประกอบ)
2. เลย์เอาต์ BorderLayout (JWindow, JFrame, เค้าโครงเริ่มต้นของ JDialog)
กลยุทธ์เลย์เอาต์ Borderlayout คือการแบ่งพื้นที่ในภาชนะออกเป็นห้าพื้นที่ทางตะวันออก "ตะวันออก", ตะวันตก "ตะวันตก", ใต้ "ใต้", นอร์ท "เหนือ" และ "ศูนย์" เมื่อเข้าร่วมส่วนประกอบคุณควรระบุว่าพื้นที่ใดที่วางไว้ในส่วนประกอบ ใส่ส่วนประกอบในตำแหน่ง หากคุณต้องการเพิ่มส่วนประกอบหลายส่วนในสถานที่ที่แน่นอนคุณควรเพิ่มส่วนประกอบของตำแหน่งเพื่อวางคอนเทนเนอร์อื่นก่อนจากนั้นเพิ่มคอนเทนเนอร์ลงในตำแหน่งนี้
วิธีการโครงสร้างของเค้าโครง Borderlayout คือ:
(1) BorderLayout () สร้างเลย์เอาต์ BorderLayout เริ่มต้น โดยค่าเริ่มต้นไม่มีช่องว่าง
(2) BorderLayout (Int Horz, Int Vert) ตั้งค่าระยะห่างแนวนอนและแนวตั้งระหว่างส่วนประกอบ
วิธีการตั้งค่าของกลยุทธ์การจัดวาง BorderLayout คือ SetLayout (New BorderLayout ()) วิธีการเพิ่มส่วนประกอบลงในคอนเทนเนอร์คือเพิ่ม (ชื่อส่วนประกอบตำแหน่ง)
เค้าโครง BorderLayout เป็นเค้าโครงเริ่มต้นของ JWindow, JFrame, JDialog
[ตัวอย่าง 11-5] แอปพลิเคชันมีป้ายกำกับห้าป้ายซึ่งวางไว้ในห้าพื้นที่ของตะวันออก, ตะวันตก, ใต้, เหนือ, และกลางและกลางตามลำดับ
นำเข้า Javax.swing.*; นำเข้า Java.awt.*; Window "); // สร้างวัตถุคอนเทนเนอร์หน้าต่าง mw.setsize (250,200); container con = mw.getContentPane (); con.setLayout (New BorderLayout ()); label1 = new JLabel (" East Tag "); / / / / / / / / / / / / / / / / / / / / / / / / ค่าเริ่มต้นไปที่ Qi Qi label2 = new Jlabel ("South Tag", Jlabel.Center); New Jlabel ("" "Mid -label", Jlabel.Center); .Add (Label4, "North");
3. รูปแบบ Gridlayout
เค้าโครง Gridlayout คือการแบ่งคอนเทนเนอร์ออกเป็นรูปกริดแบบกริด ลักษณะของเค้าโครง gridlayout คือการวางตำแหน่งส่วนประกอบมีความแม่นยำมากขึ้น เนื่องจากแต่ละกริดในเค้าโครง gridlayout มีรูปร่างและขนาดเท่ากันส่วนประกอบที่จำเป็นในการใส่ในภาชนะควรรักษาขนาดเท่ากัน
วิธีการสร้างสรรค์ของเค้าโครง gridlayout คือ:
(1) Gridlayout () สร้างเค้าโครง gridlayout -column เดียว โดยค่าเริ่มต้นไม่มีช่องว่าง
(2) gridlayout (แถว int, int สี), ตั้งค่าเค้าโครง gridlayout ที่มีแถวและคอลัมน์ พ.อ.
(3) gridlayout (แถว int, int สี, int horz, int vert), ตั้งจำนวนแถวและคอลัมน์ของเลย์เอาต์, ระยะห่างแนวนอนและแนวตั้งของส่วนประกอบ
เค้าโครงของ Gridlayout ขึ้นอยู่กับการวัดประสิทธิภาพเชิงพฤติกรรม ลำดับความสำคัญ (เพิ่มขึ้นโดยอัตโนมัติตามส่วนประกอบ) แต่ละกริดของเค้าโครง gridlayout จะต้องกรอกในส่วนประกอบ
[ตัวอย่าง 11-6] แอปพลิเคชันขนาดเล็กวางปุ่มหลายปุ่มและป้ายกำกับหลายรายการใน JPanel จากนั้นใส่ jpanel ใน Jscrollpane ในที่สุด กว่าข้อกำหนดที่แท้จริงของแผงควบคุม
นำเข้า Java.applet.*; นำเข้า Javax.swing.*; มิติใหม่ (W, H)); ++) {p.add (ใหม่ jlabel ()); ); (W+60, H+60)); ();}} scrolpane excrollpane {scrollpane สาธารณะ (ส่วนประกอบ p) {super (p); OW MyWindow; {myWindow = ใหม่ myWindow (400, 350);}}
เค้าโครง Gridlayout ต้องการขนาดของส่วนประกอบทั้งหมดที่จะสอดคล้องกันซึ่งอาจไม่สวยงามพอที่จะใช้รูปลักษณ์ของอินเทอร์เฟซ วิธีการรักษาคือการรวมส่วนประกอบบางอย่างในคอนเทนเนอร์จากนั้นใช้คอนเทนเนอร์นี้เป็นส่วนประกอบแล้วใส่ไว้ในเค้าโครง gridlayout นี่คือการทำรังภาชนะที่กล่าวถึงก่อนหน้านี้ ตัวอย่างเช่นคอนเทนเนอร์ A ใช้เลย์เอาต์ gridlayout เพื่อแบ่งคอนเทนเนอร์ออกเป็นกริด; คอนเทนเนอร์ B และ C ยังสามารถตั้งค่าเป็นเค้าโครง gridlayout แบ่งตัวเองออกเป็นหลายกริดหรือสามารถตั้งค่าเป็นเลย์เอาต์อื่น ๆ ด้วยวิธีนี้จากลักษณะที่ปรากฏขนาดของแต่ละองค์ประกอบแตกต่างกัน
4. เค้าโครง cardlayout
แม้ว่าคอนเทนเนอร์ที่ใช้เค้าโครง cardlayout สามารถรองรับหลายองค์ประกอบได้ แต่ส่วนประกอบหลายชิ้นมีพื้นที่แสดงผลเท่ากันและสามารถแสดงส่วนประกอบได้ในช่วงเวลาหนึ่ง เช่นเดียวกับสแต็กการ์ดโป๊กเกอร์สามารถแสดงส่วนบนสุดในแต่ละครั้งเท่านั้นส่วนประกอบที่แสดงนี้จะครอบครองพื้นที่ทั้งหมดของภาชนะบรรจุ ขั้นตอนการออกแบบเค้าโครงแบบ cardlayout มีดังนี้:
ก่อนอื่นสร้างวัตถุเค้าโครง cardlayout จากนั้นใช้เมธอด setLayout () เพื่อตั้งค่าเค้าโครงสำหรับคอนเทนเนอร์ ส่วนใหญ่วิธีการเพิ่ม () ของการเรียกคอนเทนเนอร์จะเพิ่มส่วนประกอบลงในคอนเทนเนอร์ วิธีการเพิ่มส่วนประกอบของกลยุทธ์เค้าโครง cardlayout คือ:
เพิ่ม (รหัสส่วนประกอบ, ส่วนประกอบ);
รหัสส่วนประกอบเป็นสตริงซึ่งได้รับแยกต่างหากและไม่มีส่วนเกี่ยวข้องกับชื่อส่วนประกอบ
ตัวอย่างเช่นรหัสต่อไปนี้ตั้งค่าเค้าโครง cardlayout สำหรับคอนเทนเนอร์ JPanel:
Cardlayout mycard = new CardLayout ();
มีสองวิธีในการแสดงองค์ประกอบในวิธีการที่จัดทำโดยคลาส cardlayout:
(1) รหัสในรูปแบบของการแสดง (ชื่อคอนเทนเนอร์รหัสส่วนประกอบ) และระบุการแสดงส่วนประกอบในคอนเทนเนอร์ ตัวอย่างเช่นรหัสต่อไปนี้ระบุส่วนประกอบของคอนเทนเนอร์ P เพื่อแสดงส่วนประกอบนี้:
MyCard.Show (P, K);
(2) ส่วนประกอบจะปรากฏขึ้นตามลำดับของการเพิ่มคอนเทนเนอร์ตามส่วนประกอบ
ครั้งแรก (คอนเทนเนอร์): ตัวอย่างเช่นรหัส mycard.first (p);
สุดท้าย (คอนเทนเนอร์): ตัวอย่างเช่น mycard.last (p);
ถัดไป (คอนเทนเนอร์): ตัวอย่างเช่น mycard.next (p);
ก่อนหน้า (คอนเทนเนอร์): MyCard.Previous (P);
[ตัวอย่าง 11-7] แอปพลิเคชันขนาดเล็กใช้เค้าโครงแบบ cardlayout หน้าต่างมีปุ่ม 4 ปุ่มซึ่งรับผิดชอบในการแสดงส่วนประกอบแรกของ P, ส่วนประกอบสุดท้าย, ส่วนประกอบแรกของส่วนประกอบปัจจุบันและส่วนประกอบสุดท้ายของส่วนประกอบปัจจุบัน
นำเข้า Java.applet.*; (); label1 = new jlabel ("I am"+x+"a label"); Mycard; mypanel mypanel []; Void Init () {SetLayout (ใหม่ BorderLayout ()); MyCard); ); P .Add ("A"+I, MyPanel [i]); (P2, "First One", สิ่งนี้); IFTACTIONCOMNAND () (E.GetActionCommand (). เท่ากับ ("前一个")) MyCard.Previous (P);
5. วิธีการเลย์เอาต์และวิธีการตั้งค่า
เค้าโครงอากาศคือการตั้งค่าเค้าโครงของคอนเทนเนอร์เป็นเค้าโครงว่าง เค้าโครงอากาศใช้เมธอด setBounds () เพื่อตั้งค่าขนาดของส่วนประกอบเองและตำแหน่งในคอนเทนเนอร์:
setBounds (int x, int y, ความกว้าง int, ความสูง int)
พื้นที่ที่ถูกครอบครองโดยส่วนประกอบคือรูปสี่เหลี่ยมผืนผ้าพารามิเตอร์ x และ y คือตำแหน่งพิกัดของมุมบนซ้ายของส่วนประกอบในภาชนะ มีสองขั้นตอนสำหรับส่วนประกอบการตั้งถิ่นฐานใหม่ของการตั้งถิ่นฐานใหม่: ก่อนอื่นให้ใช้วิธีการเพิ่ม () เพื่อเพิ่มส่วนประกอบในภาชนะบรรจุร่างกาย จากนั้นเรียกใช้เมธอด setBounds () เพื่อตั้งค่าตำแหน่งของส่วนประกอบในคอนเทนเนอร์และขนาดของส่วนประกอบเอง วิธีการอื่น ๆ ที่เกี่ยวข้องกับส่วนประกอบ:
1. getSize ()
2. getSize ()
3.SetVGAP (ING VGAP)
4.SethGap (int hGAP);