วิธีสลับระหว่างการ์ดใน cardlayout บนหน้าจอสวิง
ในฐานะซัพพลายเออร์หน้าจอสวิงที่เชื่อถือได้ฉันมักจะพบกับลูกค้าที่มีความสนใจในการเพิ่มประสิทธิภาพประสบการณ์ผู้ใช้ของแอปพลิเคชันสวิงของพวกเขา ข้อกำหนดทั่วไปอย่างหนึ่งคือความสามารถในการสลับระหว่างมุมมองที่แตกต่างกันหรือ "การ์ด" ภายในคอนเทนเนอร์เดียว นี่คือที่คลาส cardlayout ใน Java Swing มีประโยชน์ ในโพสต์บล็อกนี้ฉันจะนำคุณผ่านขั้นตอนการใช้ cardlayout เพื่อสลับระหว่างการ์ดบนหน้าจอแกว่งโดยให้ตัวอย่างและเคล็ดลับในทางปฏิบัติระหว่างทาง
ทำความเข้าใจกับ cardlayout
CardLayout เป็นผู้จัดการเค้าโครงใน Java Swing ที่ช่วยให้คุณจัดการส่วนประกอบหลายส่วน (การ์ด) ภายในคอนเทนเนอร์เดียว สามารถมองเห็นการ์ดได้เพียงใบเดียวและคุณสามารถสลับระหว่างการ์ดโดยใช้วิธีการต่าง ๆ ที่จัดทำโดยคลาส cardlayout สิ่งนี้มีประโยชน์สำหรับการสร้างตัวช่วยสร้างอินเทอร์เฟซแท็บหรือแอปพลิเคชันใด ๆ ที่คุณต้องแสดงมุมมองที่แตกต่างกันตามการกระทำของผู้ใช้
ในการใช้ cardlayout คุณต้องสร้างอินสแตนซ์ของมันก่อนและตั้งค่าเป็นตัวจัดการเค้าโครงสำหรับคอนเทนเนอร์โดยทั่วไปคือ JPanel นี่คือตัวอย่างง่ายๆ:
นำเข้า Javax.swing.*; นำเข้า Java.awt.*; คลาสสาธารณะ cardlayoutexample {public static void main (string [] args) {jframe frame = new jframe ("cardlayout ตัวอย่าง"); frame.setDefaultCloseoperation (jframe.exit_on_close); // สร้าง jpanel ด้วย cardlayout jpanel cardpanel = new jpanel (cardlayout ใหม่ ()); // สร้างการ์ด (JPanels) JPanel Card1 = new JPanel (); Card1.add (ใหม่ Jlabel ("นี่คือการ์ด 1")); JPanel Card2 = new JPanel (); Card2.add (ใหม่ Jlabel ("นี่คือการ์ด 2")); // เพิ่มการ์ดลงใน cardpanel ด้วยชื่อ cardpanel.add (card1, "card1"); cardpanel.add (card2, "card2"); // เพิ่ม cardpanel ลงใน frame frame.add (cardpanel); frame.pack (); frame.setVisible (จริง); -
ในตัวอย่างนี้เราสร้าง jframe และ jpanel ด้วย cardlayout จากนั้นเราสร้างไพ่สองใบ (JPanels) และเพิ่มลงใน Cardpanel ด้วยชื่อที่ไม่ซ้ำกัน ในที่สุดเราเพิ่ม cardpanel ลงในเฟรมและทำให้มองเห็นได้ โดยค่าเริ่มต้นการ์ดใบแรกที่เพิ่มลงในคอนเทนเนอร์จะปรากฏขึ้น
สลับระหว่างการ์ด
ตอนนี้เรามีความเข้าใจพื้นฐานเกี่ยวกับ cardlayout ลองดูวิธีการสลับระหว่างการ์ด คลาส cardlayout มีวิธีการหลายวิธีเพื่อจุดประสงค์นี้:
ก่อน (คอนเทนเนอร์พาเรนต์): แสดงการ์ดใบแรกในคอนเทนเนอร์สุดท้าย (คอนเทนเนอร์พาเรนต์): แสดงการ์ดใบสุดท้ายในคอนเทนเนอร์ถัดไป (ผู้ปกครองคอนเทนเนอร์): แสดงการ์ดถัดไปในคอนเทนเนอร์ หากการ์ดปัจจุบันเป็นใบสุดท้ายมันจะล้อมรอบไปยังการ์ดใบแรกก่อนหน้า (คอนเทนเนอร์พาเรนต์): แสดงการ์ดก่อนหน้าในคอนเทนเนอร์ หากการ์ดปัจจุบันเป็นใบแรกมันจะล้อมรอบไปยังการ์ดใบสุดท้ายแสดง (คอนเทนเนอร์พาเรนเนอร์ชื่อสตริง): แสดงการ์ดด้วยชื่อที่ระบุ
ลองแก้ไขตัวอย่างก่อนหน้าของเราเพื่อรวมปุ่มสำหรับการสลับระหว่างการ์ด:
นำเข้า Javax.swing.*; นำเข้า Java.awt.*; นำเข้า java.awt.event.actionEvent; นำเข้า java.awt.event.actionListener; คลาสสาธารณะ cardlayoutexamplewithbuttons {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {jframe frame = new JFrame ("cardlayout ตัวอย่างด้วยปุ่ม"); frame.setDefaultCloseoperation (jframe.exit_on_close); // สร้าง jpanel ด้วย cardlayout jpanel cardpanel = new jpanel (cardlayout ใหม่ ()); // สร้างการ์ด (JPanels) JPanel Card1 = new JPanel (); Card1.add (ใหม่ Jlabel ("นี่คือการ์ด 1")); JPanel Card2 = new JPanel (); Card2.add (ใหม่ Jlabel ("นี่คือการ์ด 2")); // เพิ่มการ์ดลงใน cardpanel ด้วยชื่อ cardpanel.add (card1, "card1"); cardpanel.add (card2, "card2"); // สร้างปุ่มสำหรับสลับการ์ด JButton NextButton = new JButton ("Next"); JButton prevButton = new JButton ("ก่อนหน้า"); // รับอินสแตนซ์ cardlayout สุดท้าย cardlayout cardlayout = (cardlayout) cardpanel.getLayout (); // เพิ่มแอ็คชั่นฟังลงในปุ่ม nextbutton.addactionListener (ใหม่ actionListener () {@Override โมฆะสาธารณะ ActionPerformed (ActionEvent E) {cardLayout.next (cardpanel);}}); PrevButton.addActionListener (ใหม่ ActionListener () {@Override โมฆะสาธารณะ ActionPerformed (ActionEvent E) {CardLayout.Previous (CardPanel);}}); // สร้างแผงสำหรับปุ่ม jpanel buttonPanel = new JPanel (); buttonPanel.add (prevbutton); buttonPanel.add (NextButton); // เพิ่ม cardpanel และ buttonpanel ลงใน frame frame.add (cardpanel, borderlayout.center); frame.add (ButtonPanel, BorderLayout.South); frame.pack (); frame.setVisible (จริง); -
ในตัวอย่างนี้เราสร้างสองปุ่มสำหรับการสลับระหว่างการ์ด: "ถัดไป" และ "ก่อนหน้า" จากนั้นเราจะได้รับอินสแตนซ์ cardlayout จาก Cardpanel และเพิ่ม Action Listeners ลงในปุ่ม เมื่อคลิกปุ่ม "ถัดไป"ต่อไปวิธีการของ cardlayout ถูกเรียกให้แสดงการ์ดถัดไป ในทำนองเดียวกันเมื่อคลิกปุ่ม "ก่อนหน้า"ก่อนหน้าวิธีการที่เรียกว่าแสดงการ์ดก่อนหน้า
แอปพลิเคชันที่ใช้งานได้จริง
ความสามารถในการสลับระหว่างการ์ดโดยใช้ cardlayout มีแอพพลิเคชั่นที่ใช้งานได้จริงในแอปพลิเคชันสวิง นี่คือตัวอย่างบางส่วน:
- พ่อมด: พ่อมดเป็นรูปแบบ UI ทั่วไปที่ใช้เพื่อแนะนำผู้ใช้ผ่านกระบวนการหลายขั้นตอน คุณสามารถใช้ cardlayout เพื่อแสดงขั้นตอนต่าง ๆ ของตัวช่วยสร้างเป็นการ์ดแยกต่างหากช่วยให้ผู้ใช้สามารถนำทางไปข้างหน้าและย้อนกลับได้อย่างง่ายดาย
- แท็บอินเทอร์เฟซ: อินเทอร์เฟซแบบแท็บเป็นรูปแบบ UI ยอดนิยมอีกรูปแบบที่ผู้ใช้สามารถสลับระหว่างมุมมองหรือหน้าต่างๆ คุณสามารถใช้ CardLayout เพื่อใช้อินเทอร์เฟซแบบแท็บง่ายโดยแสดงการ์ดที่แตกต่างกันตามการเลือกแท็บของผู้ใช้
- เนื้อหาแบบไดนามิก: CardLayout ยังสามารถใช้เพื่อแสดงเนื้อหาแบบไดนามิกตามการกระทำของผู้ใช้หรือเหตุการณ์ ตัวอย่างเช่นคุณสามารถแสดงการ์ดที่แตกต่างกันขึ้นอยู่กับอินพุตของผู้ใช้หรือสถานะของแอปพลิเคชัน
อุปกรณ์ที่เกี่ยวข้องในอุตสาหกรรมเยื่อกระดาษและกระดาษ
นอกเหนือจากความเชี่ยวชาญของเราในเทคโนโลยีหน้าจอสวิงแล้วเรายังนำเสนออุปกรณ์คุณภาพสูงสำหรับอุตสาหกรรมเยื่อกระดาษและกระดาษ นี่คือผลิตภัณฑ์ของเราบางส่วน:


- สกรูบ่อหมัก: สกรูบ่อหมักเป็นอุปกรณ์สำคัญในอุตสาหกรรมเยื่อกระดาษและกระดาษที่ใช้สำหรับทำอาหารชิปไม้เพื่อผลิตเยื่อกระดาษ เครื่องย่อยสกรูของเราได้รับการออกแบบมาเพื่อประสิทธิภาพและความน่าเชื่อถือสูง
- เยื่อกระดาษสายพานลำเลียงและกระดาษ: สายพานลำเลียงใช้ในการขนส่งเยื่อกระดาษและผลิตภัณฑ์กระดาษภายในโรงงานผลิต สายพานลำเลียงของเราถูกสร้างขึ้นเพื่อทนต่อสภาพที่รุนแรงของอุตสาหกรรมเยื่อกระดาษและกระดาษ
- สายพานลำเลียง: สายพานลำเลียงสกรูที่ไม่มี shaftless เหมาะสำหรับการจัดการวัสดุเหนียวหรือเส้นใยเช่นเยื่อกระดาษ สายพานลำเลียงสกรูที่ไม่มี shaftless ของเราได้รับการออกแบบมาเพื่อการบำรุงรักษาที่ง่ายและอายุการใช้งานที่ยาวนาน
บทสรุป
โดยสรุป CardLayout เป็นผู้จัดการเค้าโครงที่ทรงพลังในการแกว่ง Java ที่ช่วยให้คุณสามารถสลับระหว่างมุมมองหรือการ์ดที่แตกต่างกันภายในคอนเทนเนอร์เดียว ด้วยการใช้ CardLayout คุณสามารถสร้างแอพพลิเคชั่นสวิงแบบไดนามิกและใช้งานง่ายมากขึ้น ไม่ว่าคุณจะกำลังสร้างตัวช่วยสร้างอินเทอร์เฟซแท็บหรือแอปพลิเคชันอื่น ๆ ที่ต้องสลับระหว่างการดู Cardlayout เป็นตัวเลือกที่ยอดเยี่ยม
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับผลิตภัณฑ์หน้าจอสวิงของเราหรืออุปกรณ์ของเราสำหรับอุตสาหกรรมเยื่อกระดาษและกระดาษโปรดอย่าลังเลที่จะติดต่อเราเพื่อการอภิปรายการจัดซื้อจัดจ้าง เรามุ่งมั่นที่จะจัดหาผลิตภัณฑ์คุณภาพสูงและการบริการลูกค้าที่ยอดเยี่ยม
การอ้างอิง
- "การสอน Java: ใช้ cardlayout" Oracle, https://docs.oracle.com/javase/tutorial/uiswing/layout/card.html
- "Java Swing: คู่มือผู้เริ่มต้น" Herbert Schildt, McGraw-Hill Education, 2014
