การจัดการเหตุการณ์การเลือกรายการสินค้าใน Swing เป็นสิ่งสำคัญในการพัฒนาแอปพลิเคชัน Java ด้วยอินเทอร์เฟซผู้ใช้แบบกราฟิก ในฐานะซัพพลายเออร์ของ Swing ฉันมีประสบการณ์มากมายในการจัดการกับกิจกรรมเหล่านี้ และฉันตื่นเต้นที่จะแบ่งปันข้อมูลเชิงลึกเกี่ยวกับวิธีการจัดการงานเหล่านั้นอย่างมีประสิทธิภาพ
ทำความเข้าใจกับรายการสวิงและเหตุการณ์การคัดเลือก
ในสวิง, เอเจลิสต์เป็นส่วนประกอบที่แสดงรายการวัตถุและอนุญาตให้ผู้ใช้เลือกหนึ่งรายการขึ้นไป เมื่อผู้ใช้เลือกรายการจากรายการ เหตุการณ์การเลือกจะถูกสร้างขึ้น เหตุการณ์นี้สามารถใช้เพื่อทริกเกอร์การดำเนินการต่างๆ ในแอปพลิเคชันของคุณ เช่น การแสดงข้อมูลโดยละเอียดเกี่ยวกับรายการที่เลือก การคำนวณ หรือการนำทางไปยังส่วนอื่นของอินเทอร์เฟซ
ในการจัดการเหตุการณ์การเลือกรายการสินค้า คุณต้องดำเนินการListSelectionListenerอินเตอร์เฟซ อินเทอร์เฟซนี้มีวิธีการเดียวvalueChanged (ListSelectionEvent จ)ซึ่งจะถูกเรียกเมื่อใดก็ตามที่การเลือกในรายการเปลี่ยนแปลง
นี่คือตัวอย่างง่ายๆ ของวิธีการสร้างเจลิสต์และเพิ่มกListSelectionListenerถึงมัน:


นำเข้า javax.swing.*; นำเข้า javax.swing.event.ListSelectionEvent; นำเข้า javax.swing.event.ListSelectionListener; ListSelectionExample ระดับสาธารณะ { โมฆะสาธารณะคง main (String [] args) { JFrame frame = new JFrame ("ตัวอย่างการเลือกรายการ"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); String[] data = {"รายการที่ 1", "รายการที่ 2", "รายการที่ 3", "รายการที่ 4", "รายการที่ 5"}; JList<String> list = ใหม่ JList<>(ข้อมูล); list.addListSelectionListener (ListSelectionListener ใหม่ () { @Override public void valueChanged (ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { JList<String> source = (JList<String>) e.getSource(); int SelectedIndex = source.getSelectedIndex(); if (selectedIndex != -1) { สตริง SelectedItem = source.getSelectedValue(); System.out.println("รายการที่เลือก: " + SelectedItem); JScrollPane scrollPane = JScrollPane ใหม่ (รายการ); frame.add(แถบเลื่อน); กรอบ.แพ็ค(); frame.setVisible(จริง); -
ในตัวอย่างนี้ เราสร้าง aเจลิสต์ด้วยอาร์เรย์ของสตริง จากนั้นเราก็เพิ่มกListSelectionListenerไปที่รายการ ภายในมูลค่าเปลี่ยนแปลงแล้ววิธีแรกเราตรวจสอบก่อนว่าการเลือกยังคงถูกปรับโดยใช้getValueIsAdjustingวิธี. นี่เป็นสิ่งสำคัญเพราะว่ามูลค่าเปลี่ยนแปลงแล้วสามารถเรียกเมธอดได้หลายครั้งในขณะที่ผู้ใช้ทำการเลือก เมื่อการคัดเลือกเสร็จสิ้น เราก็จะได้ทราบที่มาของเหตุการณ์ (ซึ่งก็คือเจลิสต์) ดัชนีที่เลือก และรายการที่เลือก ในที่สุดเราก็พิมพ์รายการที่เลือกไปยังคอนโซล
การจัดการโหมดการเลือกหลายรายการ
แกว่งเจลิสต์รองรับโหมดการเลือกที่แตกต่างกัน เช่น การเลือกเดี่ยว การเลือกช่วงเวลาเดียว และการเลือกหลายช่วงเวลา คุณสามารถตั้งค่าโหมดการเลือกโดยใช้ตั้งค่า SelectionModeวิธี.
- การเลือกเดี่ยว: สามารถเลือกได้ครั้งละหนึ่งรายการเท่านั้น คุณสามารถตั้งค่าโหมดการเลือกเป็น
ListSelectionModel.SINGLE_SELECTION- - การเลือกช่วงเวลาเดียว: สามารถเลือกรายการที่อยู่ติดกันได้ คุณสามารถตั้งค่าโหมดการเลือกเป็น
ListSelectionModel.SINGLE_INTERVAL_SELECTION- - การเลือกช่วงหลายช่วง: สามารถเลือกช่วงรายการที่ไม่ต่อเนื่องกันได้ คุณสามารถตั้งค่าโหมดการเลือกเป็น
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION-
ต่อไปนี้คือตัวอย่างวิธีจัดการกับการเลือกหลายช่วงเวลา:
นำเข้า javax.swing.*; นำเข้า javax.swing.event.ListSelectionEvent; นำเข้า javax.swing.event.ListSelectionListener; นำเข้า java.util.List; MultipleSelectionExample ระดับสาธารณะ { โมฆะสาธารณะคง main (String [] args) { JFrame frame = new JFrame ("ตัวอย่างการเลือกหลายรายการ"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); String[] data = {"รายการที่ 1", "รายการที่ 2", "รายการที่ 3", "รายการที่ 4", "รายการที่ 5"}; JList<String> list = ใหม่ JList<>(ข้อมูล); list.setSelectionMode (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); list.addListSelectionListener(New ListSelectionListener() { @แทนที่ public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { JList<String> source = (JList<String>) e.getSource(); List<String> SelectedValuesList = source.getSelectedValuesList(); for (String SelectedItem : SelectedValuesList) { System.out.println("รายการที่เลือก: " + รายการที่เลือก); JScrollPane scrollPane = JScrollPane ใหม่ (รายการ); frame.add(แถบเลื่อน); กรอบ.แพ็ค(); frame.setVisible(จริง); -
ในตัวอย่างนี้ เราตั้งค่าโหมดการเลือกของเจลิสต์ถึงListSelectionModel.MULTIPLE_INTERVAL_SELECTION- ภายในมูลค่าเปลี่ยนแปลงแล้ววิธีการ เราจะได้รายการของรายการที่เลือกทั้งหมดโดยใช้getSelectedValuesListจากนั้นวนซ้ำรายการเพื่อพิมพ์แต่ละรายการที่เลือก
การใช้งานจริงในผลิตภัณฑ์สวิงของเรา
ในฐานะซัพพลายเออร์สวิง เรามีชิงช้าหลากหลายประเภท รวมถึงสวิงสำหรับผู้ใหญ่สีสันสดใสขนาดใหญ่, ที่ชิงช้าในสวนสำหรับเด็กและสวิงเล็กสำหรับบ้าน- ในแอปพลิเคชันของเรา เหตุการณ์การเลือกรายการสามารถใช้ได้หลายวิธี
ตัวอย่างเช่น เราสามารถสร้างเจลิสต์ที่แสดงชิงช้าประเภทต่างๆ เมื่อผู้ใช้เลือกวงสวิงจากรายการ เราสามารถแสดงข้อมูลโดยละเอียดเกี่ยวกับวงสวิงนั้นได้ เช่น ขนาด ความสามารถในการรับน้ำหนัก และราคา นอกจากนี้เรายังสามารถใช้เหตุการณ์การเลือกเพื่อกระตุ้นการดำเนินการ เช่น การเพิ่มวงสวิงที่เลือกลงในตะกร้าสินค้าหรือการสร้างใบเสนอราคา
นำเข้า javax.swing.*; นำเข้า javax.swing.event.ListSelectionEvent; นำเข้า javax.swing.event.ListSelectionListener; SwingSelectionExample ระดับสาธารณะ { โมฆะสาธารณะคง main (String [] args) { JFrame frame = new JFrame ("ตัวอย่างการเลือกสวิง"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ชิงช้าเชือก[] = {"ชิงช้าผู้ใหญ่หลากสีสัน", "ชิงช้าในสวนสำหรับเด็ก", "ชิงช้าเล็กสำหรับบ้าน"}; JList<String> swingList = ใหม่ JList<>(แกว่ง); สุดท้าย JLabel infoLabel = JLabel ใหม่ ("เลือกวงสวิงเพื่อดูรายละเอียด"); swingList.addListSelectionListener (ListSelectionListener ใหม่ () { @Override public void valueChanged (ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { JList<String> source = (JList<String>) e.getSource(); int SelectedIndex = source.getSelectedIndex(); if (selectedIndex != -1) { สตริงที่เลือกSwing = source.getSelectedValue(); String detail = ""; switch (selectedSwing) { case "Big Colourful Swing": detail = "ชิงช้าขนาดใหญ่สีสันสดใสเหมาะสำหรับผู้ใหญ่ สามารถรับน้ำหนักได้สูงและทำจากวัสดุที่ทนทาน"; break; case "ชิงช้าในสวนสำหรับเด็ก": รายละเอียด = "ชิงช้าขนาดกะทัดรัดที่สามารถติดตั้งได้ง่าย" ที่บ้าน เหมาะสำหรับพื้นที่ขนาดเล็ก"; break; } infoLabel.setText(details); - -); JScrollPane scrollPane = JScrollPane ใหม่ (swingList); frame.add(scrollPane, java.awt.BorderLayout.WEST); frame.add(infoLabel, java.awt.BorderLayout.CENTER); กรอบ.แพ็ค(); frame.setVisible(จริง); -
ในตัวอย่างนี้ เราสร้าง aเจลิสต์ด้วยชื่อชิงช้าของเรา เมื่อผู้ใช้เลือกวงสวิงจากรายการ เราจะใช้สวิตช์คำสั่งเพื่อรับรายละเอียดของวงสวิงที่เลือกและอัพเดตเจเลเบลด้วยข้อมูล
บทสรุป
การจัดการเหตุการณ์การเลือกรายการสินค้าใน Swing ถือเป็นทักษะที่จำเป็นสำหรับนักพัฒนา Java โดยการนำListSelectionListenerอินเทอร์เฟซและทำความเข้าใจกับโหมดการเลือกต่างๆ คุณสามารถสร้างแอปพลิเคชันเชิงโต้ตอบและเป็นมิตรกับผู้ใช้ได้ ในฐานะซัพพลายเออร์ของ Swing เรามุ่งมั่นที่จะมอบชิงช้าคุณภาพสูงและช่วยเหลือลูกค้าของเราในการพัฒนาแอพพลิเคชั่นที่ใช้ประโยชน์จากคุณสมบัติของ Swing ให้เกิดประโยชน์สูงสุด
หากคุณสนใจผลิตภัณฑ์วงสวิงของเรา หรือมีคำถามใดๆ เกี่ยวกับการจัดการกิจกรรมการเลือกรายการสินค้าในแอปพลิเคชัน Swing ของคุณ เราขอแนะนำให้คุณติดต่อเราเพื่อขอการจัดซื้อและหารือเพิ่มเติม เราหวังว่าจะได้ร่วมงานกับคุณเพื่อตอบสนองความต้องการของคุณ
อ้างอิง
- "การสอน Java Swing" โดย Oracle
- "Effective Java" โดย Joshua Bloch
