Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

Java में TableCellRenderer और TableCellEditor में क्या अंतर हैं?

टेबलसेलरेंडरर

  • एक TableCellRenderer एक घटक बनाता है जो JTable . का मान प्रदर्शित करता है सेल.
  • डिफ़ॉल्ट रेंडरर JLabel . का उपयोग करता है प्रत्येक टेबल सेल का मान प्रदर्शित करने के लिए।
  • टेबल सेल रेंडरर इंटरफ़ेस को दो तरीकों से निर्दिष्ट किया जा सकता है:table.setDefaultRenderer() का उपयोग करके प्रस्तुत की जाने वाली वस्तु के वर्ग द्वारा विधि और कॉलम द्वारा tableColumn.setCellRenderer() . का उपयोग करके विधि और tableColumn.setHeaderRenderer() विशिष्ट कॉलम हेडर के लिए विधि।
  • टेबल सेल रेंडरर इंटरफ़ेस में केवल एक ही विधि है getTableCellRendererComponent() और यह विधि मान के आधार पर अलग-अलग रेंडरिंग घटकों को वापस कर सकती है, एक सेल में फोकस होता है या चुना जाता है, पंक्ति और कॉलम जिसमें मान हो सकता है।

TableCellEditor

  • एक TableCellEditor एक इंटरफ़ेस है और डिफ़ॉल्ट रूप से, सेल संपादन योग्य हो सकते हैं।
  • एक TableCellEditor कॉल करके निर्धारित किया जा सकता है isCellEditable() TableModel . की विधि ।
  • यदि सेल मान का वर्ग बूलियन है, तो JCheckBox का उपयोग किया जा सकता है। यदि संपादन मोड में डालने के लिए डबल क्लिक करना है, तो JTextField का उपयोग किया जा सकता है।
  • TableCellEditor इंटरफ़ेस में केवल एक ही विधि है getTableCellEditorComponent () और यह विधि मान के आधार पर विभिन्न संपादन घटकों को वापस कर सकती है, एक सेल का चयन किया जाता है, पंक्ति और स्तंभ जिसमें मान हो सकता है।

उदाहरण

आयात करें सार्वजनिक TableCellRendererEditorTest () {setTitle ("TableCellRendererEditor Test"); DefaultTableModel dtm =नया DefaultTableModel () {सार्वजनिक बूलियन isCellEditable (इंट रो, इंट कॉलम) {रिटर्न! (कॉलम ==0); } }; dtm.setDataVector(new Object[][]{{"Table Cell Renderer", "Table Cell Editor"}, {"Table Cell Renderer",,"Table Cell Editor"}}, new Object[]{"Renderer"," संपादक"}); टेबल =नया जेटीबल (डीटीएम); table.getColumn("Editor").setCellRenderer(new TextAreaRenderer ()); table.getColumn("Editor").setCellEditor(new TextAreaEditor ()); टेबल.सेटरोहाइट (80); JScrollPane स्पैन =नया JScrollPane (तालिका); जोड़ें (स्पेन); सेटसाइज (400, 275); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); सेटलोकेशन रिलेटिव टू (अशक्त); सेटविजिबल (सच); } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {नया TableCellRendererEditorTest (); }}वर्ग TextAreaRenderer JScrollPane को लागू करता है TableCellRenderer { JTextArea textarea; सार्वजनिक TextAreaRenderer () {textarea =नया JTextArea (); textarea.setLineWrap (सच); textarea.setWrapStyleWord(true); getViewport ()। जोड़ें (textarea); } सार्वजनिक घटक getTableCellRendererComponent(JTable तालिका, ऑब्जेक्ट मान, बूलियन चयनित है, बूलियन हैफ़ोकस, इंट पंक्ति, इंट कॉलम) { अगर (चयनित है) {सेटफ़ोरग्राउंड (टेबल.गेट चयन फ़ॉरग्राउंड ()); सेटबैकग्राउंड (तालिका। getSelectionBackground ()); textarea.setForeground(table.getSelectionForeground ()); textarea.setBackground (table.getSelectionBackground ()); } और {सेट फ़ोरग्राउंड (टेबल.गेट फ़ोरग्राउंड ()); सेटबैकग्राउंड (टेबल। गेटबैकग्राउंड ()); textarea.setForeground(table.getForeground()); textarea.setBackground(table.getBackground ()); } textarea.setText ((स्ट्रिंग) मान); textarea.setCaretPosition (0); इसे वापस करो; }}वर्ग TextAreaEditor DefaultCellEditor को बढ़ाता है {संरक्षित JScrollPane स्क्रॉलपैन; संरक्षित JTextArea textarea; सार्वजनिक TextAreaEditor () {सुपर (नया JCheckBox ()); स्क्रॉलपैन =नया JScrollPane (); टेक्स्टरेरा =नया जेटीक्स्टएरिया (); textarea.setLineWrap (सच); textarea.setWrapStyleWord(true); scrollpane.getViewport().add(textarea); } सार्वजनिक घटक getTableCellEditorComponent(JTable तालिका, ऑब्जेक्ट मान, बूलियन चयनित, इंट रो, इंट कॉलम) {textarea.setText((String) value); स्क्रॉलपैन लौटाएं; } सार्वजनिक वस्तु getCellEditorValue () {वापसी textarea.getText (); }}

आउटपुट

Java में TableCellRenderer और TableCellEditor में क्या अंतर हैं?


  1. जावा में JTextField और JTextArea के बीच क्या अंतर हैं?

    JTextField . के बीच मुख्य अंतर और JTextArea जावा में यह है कि एक JTextField पाठ की एक पंक्ति . में प्रवेश करने की अनुमति देता है GUI एप्लिकेशन में जबकि JTextArea पाठ की एक से अधिक पंक्तियाँ entering दर्ज करने की अनुमति देता है GUI एप्लिकेशन में। JTextField एक JTextFeld सबसे महत्वपूर्ण घटकों म

  1. जावा में JFrame और JDialog में क्या अंतर हैं?

    जेफ्रेम फ्रेम में जोड़े गए घटकों को इसकी सामग्री के रूप में संदर्भित किया जाता है, इन्हें contentPane द्वारा प्रबंधित किया जाता है . JFrame . में एक घटक जोड़ने के लिए , हमें इसके contentPane . का उपयोग करना चाहिए इसके बजाय। एक JFrame शीर्षक . के साथ एक विंडो है , सीमा , (वैकल्पिक) मेनू बार और उप

  1. Java में GridLayout और GridBagLayout में क्या अंतर हैं?

    एक ग्रिडलेआउट सभी घटकों को एक आयताकार ग्रिड में रखता है और समान आकार के आयतों . में विभाजित किया जाता है और प्रत्येक घटक को एक आयत के अंदर रखा जाता है जबकि GridBagLayout एक लचीला . है लेआउट प्रबंधक जो घटकों को लंबवत और क्षैतिज रूप से . संरेखित करता है यह आवश्यक नहीं है कि घटक समान आकार के हों।