"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > JTable में गैर-सतत सेल चयन कैसे सक्षम करें?

JTable में गैर-सतत सेल चयन कैसे सक्षम करें?

2024-11-16 को प्रकाशित
ब्राउज़ करें:823

How to Enable Non-Continuous Cell Selection in JTable?

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