] हालाँकि, यह सुनिश्चित करना महत्वपूर्ण है कि वांछित स्वरूपण को संपादन संचालन के बाद भी संरक्षित किया गया है। इस तरह के परिदृश्यों में, सेल रेंडरर का डिफ़ॉल्ट मान संपादित होने के बाद लागू नहीं किया जा सकता है। जब संपादन निष्कर्ष निकाला जाता है, तो JTable का एडिटिंगस्टॉप्ड () विधि getCellEditorValue () के माध्यम से नया मूल्य एकत्र करती है। मॉडल को तब सेटवेलुएट () के साथ सूचित किया जाता है और बाद में firetablecellupdated () को कॉल करना चाहिए। यह व्यापक प्रक्रिया रेंडरर को आमंत्रित करती है, जिसे विशेष स्वरूपण आवश्यकताओं को संभालने के लिए बढ़ाया जा सकता है। यह सेल की उपस्थिति और व्यवहार पर अधिक नियंत्रण के लिए अनुमति देता है, सेल संशोधनों के बाद भी लगातार स्वरूपण सुनिश्चित करता है। कस्टम रेंडरर (Curstoryrenderer) मुद्रा स्वरूपण को संभालता है, जबकि कस्टम संपादक (CurstoryEditor) उपयोगकर्ताओं को स्वरूपण को बनाए रखते हुए मानों को संपादित करने की अनुमति देता है।
आयात java.awt.component
आयात java.awt.event.mouseevent;
आयात java.text.numberformat;
आयात javax.swing.defaultcelleditor;
आयात javax.swing.jtable;
आयात javax.swing.jtextfield;
आयात javax.swing.table.defaulttablecellrenderer;
// मुद्रा स्वरूपण के लिए कस्टम सेल रेंडरर
पब्लिक क्लास CurrensyRenderer DefaultTableCellrenderer {का विस्तार करता है
निजी नंबरफॉर्मैट फॉर्मेटर;
पब्लिक कन्गूड्रेंडरर (नंबरफॉर्मैट फॉर्मेटर) {
this.formatter = formatter;
sethorizontalalignment (jlabel.right);
}
@Override
सार्वजनिक शून्य setValue (ऑब्जेक्ट मान) {
SETTEXT ((मान == NULL)? "": formatter.format (मान));
}
}
// मुद्रा इनपुट के लिए कस्टम सेल संपादक, स्वरूपण को बनाए रखना
पब्लिक क्लास CurrensyEditor डिफ़ॉल्टसेलडिटर का विस्तार करता है {
निजी नंबरफॉर्मैट फॉर्मेटर;
निजी JTextField TextField;
पब्लिक CurrencyEditor (नंबरफॉर्मैट फ़ॉर्मेटर) {
सुपर (नया JTextField ());
this.formatter = formatter;
TextField = (JTextField) getComponent ();
TextField.SethorizontalAlignment (JTextField.Right);
TextField.SetBorder (NULL);
}
@Override
सार्वजनिक वस्तु getCellEditorValue () {
कोशिश {
नया डबल लौटाएं (TextField.GetText ());
} कैच (नंबरफॉर्मेट एक्ससेप्शन ई) {
रिटर्न डबल। valueof (0);
}
}
@Override
सार्वजनिक घटक getTableCellEditorComponent (jtable तालिका,
ऑब्जेक्ट वैल्यू, बूलियन isselected, int row, int कॉलम) {
textfield.settext (मान == नल)
? "": formatter.format ((डबल) मान));
TextField लौटें;
}
…
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3