टेबलसेलरेंडरर
- एक 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 (); }}आउटपुट