ในขอบเขตของแอปพลิเคชันการแกว่งของ Java กล่องรายการเป็นส่วนประกอบที่มีค่าซึ่งอนุญาตให้ผู้ใช้เลือกหนึ่งรายการขึ้นไปจากรายการ ในฐานะผู้จัดหากล่องรายการที่เชื่อถือได้ฉันได้เห็นพลังการเปลี่ยนแปลงของกล่องรายการที่ออกแบบมาอย่างดีในการปรับปรุงอินเทอร์เฟซผู้ใช้ ในโพสต์บล็อกนี้ฉันจะแนะนำคุณเกี่ยวกับกระบวนการสร้างกล่องรายการในแอปพลิเคชันสวิงตั้งแต่พื้นฐานไปจนถึงการกำหนดค่าขั้นสูงเพิ่มเติม
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะดำน้ำในการสร้างกล่องรายการคุณจะต้องมีความเข้าใจพื้นฐานเกี่ยวกับการเขียนโปรแกรม Java และห้องสมุด Java Swing Swing เป็นชุดเครื่องมือเครื่องมือ GUI (ส่วนต่อประสานผู้ใช้กราฟิก) สำหรับ Java มันมีชุดส่วนประกอบมากมายที่สามารถใช้ในการสร้างแอปพลิเคชันที่ดึงดูดสายตาและผู้ใช้ - เป็นมิตร
การสร้างกล่องรายการพื้นฐาน
เริ่มต้นด้วยรูปแบบที่ง่ายที่สุดในการสร้างกล่องรายการ รหัส Java ต่อไปนี้แสดงวิธีสร้างกล่องรายการพื้นฐานที่มีรายการตัวอย่างสองสามรายการ:
`` `java นำเข้า Javax.swing- นำเข้า Java.awt-
คลาสสาธารณะ BasicListBoxExample {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {// สร้าง JFrame JFrame frame = new JFrame ("ตัวอย่างกล่องรายการพื้นฐาน"); frame.setDefaultCloseoperation (jframe.exit_on_close); frame.setsize (300, 200);
// สร้างอาร์เรย์ของรายการสำหรับสตริงกล่องรายการ [] รายการ = {"รายการ 1", "รายการ 2", "รายการ 3", "รายการ 4"}; // สร้าง jlist (กล่องรายการ) ด้วยรายการ JList <String> listbox = new Jlist <> (รายการ); // สร้าง jscrollpane เพื่อให้กล่องรายการเลื่อน jscrollpane scrollpane = new jscrollpane (กล่องรายการ); // เพิ่มบานหน้าต่างเลื่อนลงในเฟรมเฟรม getContentPane () เพิ่ม (scrollpane, borderlayout.center); // ทำให้เฟรมมองเห็นเฟรมที่มองเห็นได้ (จริง); -
-
ในรหัสนี้ก่อนอื่นเราสร้างไฟล์jframeซึ่งเป็นหน้าต่างหลักของแอปพลิเคชันสวิงของเรา จากนั้นเรากำหนดอาร์เรย์ของสตริงที่จะทำหน้าที่เป็นรายการในกล่องรายการของเรา ที่jlistConstructor ใช้อาร์เรย์นี้เป็นอาร์กิวเมนต์เพื่อสร้างกล่องรายการ เนื่องจากกล่องรายการอาจมีรายการมากกว่าที่จะพอดีในพื้นที่ที่มองเห็นได้เราจึงห่อมันไว้ในกjscrollpaneเพื่อให้สามารถเลื่อนได้ ในที่สุดเราเพิ่มบานหน้าต่างเลื่อนลงในเฟรมและทำให้เฟรมมองเห็นได้
ปรับแต่งกล่องรายการ
กล่องรายการพื้นฐานที่เราสร้างขึ้นข้างต้นนั้นใช้งานได้ แต่อาจไม่เป็นไปตามข้อกำหนดทั้งหมดของแอปพลิเคชันของคุณ Swing มีหลายวิธีในการปรับแต่งลักษณะและพฤติกรรมของกล่องรายการ
การเลือกรายการ
โดยค่าเริ่มต้นกล่องรายการอนุญาตโหมดการเลือกเดี่ยว อย่างไรก็ตามคุณสามารถเปลี่ยนเป็นโหมดการเลือกได้หลายโหมด นี่คือวิธี:
java // สร้าง jlist jlist <string> listbox = new jlist <> (รายการ); // ตั้งค่าโหมดการเลือกเป็น listbox การเลือกหลายรายการ SetSelectionMode (listelectionModel.multiple_interval_selection);
ในรหัสนี้เราใช้ไฟล์SetSelectionModeวิธีการของjlistระดับ. ที่listselectionModel.multiple_interval_selectionค่าคงที่อนุญาตให้ผู้ใช้เลือกหลายรายการที่ไม่ต่อเนื่องกันในกล่องรายการ
การแสดงผลรายการ
นอกจากนี้คุณยังสามารถปรับแต่งวิธีการแสดงรายการในกล่องรายการ ตัวอย่างเช่นคุณอาจต้องการแสดงภาพพร้อมกับข้อความ ในการทำเช่นนี้คุณต้องสร้างตัวแสดงผลเซลล์ที่กำหนดเอง นี่คือตัวอย่างง่ายๆ:
`` `java นำเข้า Javax.swing- นำเข้า Java.awt-
Class CustomListCellRenderer ขยาย DEFAUNTLISTCELLRENDERER {@Override ส่วนประกอบสาธารณะ getListCellRendererComponent (jlist <?> รายการค่าวัตถุดัชนี int ดัชนีบูลีนที่ได้รับการคัดเลือกบูลีน cellhasfocus) if (index % 2 == 0) {C.SetBackground (color.light_gray); } else {C.SetBackground (color.white); } return c; -
คลาสสาธารณะ CustomListBoxExample {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {jframe frame = new JFrame ("ตัวอย่างกล่องรายการที่กำหนดเอง"); frame.setDefaultCloseoperation (jframe.exit_on_close); frame.setsize (300, 200);
String [] items = {"รายการ 1", "รายการ 2", "รายการ 3", "รายการ 4"}; jlist <String> listbox = new jlist <> (รายการ); // ตั้งค่าตัวเรนเดอร์เซลล์ที่กำหนดเอง listbox.setCellRenderer (ใหม่ CustomListCellRenderer ()); jscrollpane scrollpane = new jscrollpane (listbox); frame.getContentPane (). เพิ่ม (scrollpane, borderlayout.center); frame.setVisible (จริง); -
-
ในตัวอย่างนี้เราสร้างตัวแสดงผลเซลล์แบบกำหนดเองโดยขยายไฟล์DefaultListCellRendererระดับ. เราแทนที่ไฟล์GetListCell Renderer Componentวิธีการเปลี่ยนสีพื้นหลังของรายการอื่น ๆ ทุกรายการในกล่องรายการ
ทำงานกับโมเดลข้อมูล
ในแอปพลิเคชันที่ซับซ้อนมากขึ้นคุณอาจต้องการใช้โมเดลข้อมูลเพื่อจัดการรายการในกล่องรายการ ที่defaultListModelชั้นเรียนเป็นวิธีที่สะดวกในการทำเช่นนี้ นี่คือตัวอย่าง:
`` `java นำเข้า Javax.swing- นำเข้า Java.awt-
คลาสสาธารณะ DataModelListBoxExample {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {JFrame frame = new JFrame ("ตัวอย่างรายการรายการข้อมูลข้อมูล"); frame.setDefaultCloseoperation (jframe.exit_on_close); frame.setsize (300, 200);
// สร้าง defaultListModel defaultListModel <String> listModel = ใหม่ defaultListModel <> (); ListModel.AddElement ("Item A"); ListModel.Addelement ("Item B"); ListModel.Addelement ("Item C"); // สร้าง jlist ด้วยโมเดลข้อมูล jlist <string> listbox = new jlist <> (listmodel); jscrollpane scrollpane = new jscrollpane (listbox); frame.getContentPane (). เพิ่ม (scrollpane, borderlayout.center); frame.setVisible (จริง); -
-
การใช้แบบจำลองข้อมูลช่วยให้คุณสามารถเพิ่มลบหรือแก้ไขรายการในกล่องรายการได้อย่างง่ายดาย
การรวมเข้ากับแอพพลิเคชั่นของ Real - World
ในฐานะผู้จัดหากล่องรายการฉันเข้าใจว่ากล่องรายการมักใช้ในแอปพลิเคชันจริง - โลกเพื่อแสดงและจัดการข้อมูลประเภทต่างๆ ตัวอย่างเช่นในแอปพลิเคชั่นการจัดการชิ้นส่วนเครื่องจักรของเหลวคุณอาจใช้กล่องรายการเพื่อแสดงชิ้นส่วนต่าง ๆ เช่นใบพัด 1-ใบพัด 2, และท่อน้ำกลั่นน้ำทะเล-
นี่คือตัวอย่างง่ายๆของวิธีที่คุณสามารถรวมกล่องรายการเข้ากับแอปพลิเคชันการจัดการชิ้นส่วนเครื่องจักรของเหลว:
`` `java นำเข้า Javax.swing- นำเข้า Java.awt-
ระดับสาธารณะของ FluidMachineryPartsListBoxExample {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {jframe frame = new JFrame ("กล่องรายการชิ้นส่วนเครื่องจักรของเหลว"); frame.setDefaultCloseoperation (jframe.exit_on_close); frame.setsize (300, 200);
DefaultListModel <String> PartsModel = ใหม่ defaultListModel <> (); PartsModel.Addelement ("ใบพัด 1"); PartsModel.Addelement ("ใบพัด 2"); PartsModel.Addelement ("ท่อน้ำกลั่นน้ำทะเล"); Jlist <String> PartsListBox = new JList <> (PartsModel); jscrollpane scrollpane = new JScrollpane (PartslistBox); frame.getContentPane (). เพิ่ม (scrollpane, borderlayout.center); frame.setVisible (จริง); -
-
บทสรุป
การสร้างกล่องรายการในแอปพลิเคชันสวิงเป็นกระบวนการที่ตรงไปตรงมา แต่มีความยืดหยุ่นและการปรับแต่งในระดับสูง ไม่ว่าคุณจะกำลังสร้างแอปพลิเคชั่นที่เรียบง่ายหรือระบบระดับองค์กรที่ซับซ้อนกล่องรายการสามารถปรับปรุงประสบการณ์ผู้ใช้ได้อย่างมาก
ในฐานะผู้จัดหากล่องรายการฉันมุ่งมั่นที่จะให้ส่วนประกอบกล่องรายการคุณภาพสูงซึ่งเชื่อถือได้และง่ายต่อการรวมเข้ากับแอปพลิเคชันสวิงของคุณ หากคุณสนใจที่จะสำรวจข้อเสนอกล่องรายการของเราหรือมีคำถามใด ๆ เกี่ยวกับการสร้างกล่องรายการในโครงการของคุณฉันขอแนะนำให้คุณติดต่อเราเพื่อจัดซื้อจัดจ้างและการอภิปรายเพิ่มเติม
การอ้างอิง
- "Java ที่มีประสิทธิภาพ" โดย Joshua Bloch
- "Java Swing: คู่มือผู้เริ่มต้น" โดย Herbert Schildt
