JTable में गैर-निरंतर कक्षों का चयन करना
JTable में, डिफ़ॉल्ट चयन मोड केवल सन्निहित सेल चयन की अनुमति देता है। व्यक्तिगत, गैर-निरंतर सेल चयन को सक्षम करने के लिए, निम्नलिखित दृष्टिकोणों पर विचार किया जा सकता है:
1. CTRL MOUSE_CLICK:
यदि setSelectionMode(ListSelectionModel.SINGLE_SELECTION) सेट नहीं है, तो सेल पर क्लिक करते समय CTRL कुंजी दबाए रखने से एकाधिक गैर-निरंतर सेल चयन की अनुमति मिलती है।
2. संशोधित ListSelectionModel:
चूंकि ListSelectionModel को JTable और JList दोनों द्वारा साझा किया जाता है, निम्नलिखित संशोधित ListSelectionModel का उपयोग किया जा सकता है:
import java.awt.Component; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import javax.swing.*; public class NonContSelectionModel extends DefaultListSelectionModel { @Override protected void processMouseEvent(MouseEvent e) { int modifiers = e.getModifiers() | InputEvent.CTRL_MASK; MouseEvent myME = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), modifiers, e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton()); super.processMouseEvent(myME); } }
इस मॉडल को setSelectionModel(new NonContSelectionModel()) का उपयोग करके JTable पर लागू किया जा सकता है।
प्रदर्शन:
निम्नलिखित कोड स्निपेट एक बनाता है JTable जो संशोधित ListSelectionModel का उपयोग करके गैर-निरंतर सेल चयन की अनुमति देता है:
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingUtilities; public class NonContJTableSelection { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); String[] columnNames = {"Name", "Age", "Profession"}; Object[][] data = { {"John Doe", 30, "Software Engineer"}, {"Jane Doe", 28, "Doctor"}, {"Peter Jones", 45, "Lawyer"} }; JTable table = new JTable(data, columnNames); table.setSelectionModel(new NonContSelectionModel()); JScrollPane scrollPane = new JScrollPane(table); panel.add(scrollPane); frame.add(panel); frame.pack(); frame.setVisible(true); } }); } }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3