मैंने एक छोटा ग्राफ विज़ुअलाइज़र वर्ग लिखा है:
सार्वजनिक शून्य सरलग्राफ (स्पेर्समल्टीग्राफ & लेफ्टिनेंट; वर्टेक्स, सेज & gt; ग्राफ, स्ट्रिंग नाम) {लेआउट & lt; Vertex, SEge & gt; लेआउट = नया आईएसएमएलआउट (ग्राफ); Layout.setSize (नया आयाम (800,800)); बेसिक विज़िवाइज़ेशन सर्वर & लेफ्टिनेंट; वर्टेक्स, सेज & gt; Vv = नया मूलभूतकरण सर्वर & लेफ्टिनेंट; वर्टेक्स, सेज & gt; (लेआउट); Vv.setPreferredSize (नया आयाम (850,850)); // दृश्य क्षेत्र आकार JFrame फ्रेम = नया JFrame (नाम) सेट करता है; frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.getContentPane () जोड़ने (vv)। frame.pack (); frame.setVisible (सही); } मैं ऊर्ध्वाधर और किनारों के लिए लेबल कैसे जोड़ सकता हूँ? मूल्य मेरे कस्टम शीर्ष वर्ग में संग्रहीत हैं I क्या मैं लेआउट या बेसिक विज़िअलाइज़ेशन सर्वर में सभी कोने से दोहरा सकता हूं और लेबल जोड़ सकता हूँ?
आपकी मदद के लिए धन्यवाद!
आपको अपने शीर्ष / किनारे के लिए एक लेबल ट्रांसफॉर्मर को कॉल करना होगा:
vv.getRenderContext ()। SetVertexLabelTransformer (नया ToStringLabeller ()); ऐसा कुछ है जो आप नमूनों में बहुत बार ढूंढते हैं यह लेबल निर्दिष्ट करने के लिए आपके शीर्ष वर्ग की toString () पद्धति का उपयोग करता है।
एक थोड़ा अधिक शामिल उदाहरण:
vv.getRenderContext ()। SetEdgeLabelTransformer (नया ट्रांसफार्मर & lt; मायईड, स्ट्रिंग & gt; () {सार्वजनिक स्ट्रिंग ट्रांस्फ़ॉर्म (MyEdge e) {रिटर्न (ई.टीस्ट्रिन्ग) + "" + e.getWeight () + "/" + e.getCapacity ());}}); आपको किनारों पर पुनरावृति करने की आवश्यकता नहीं है; EdgeLabelTransformer या VertexLabelTransformer आपके किनारे के रूप में और जब उनके गुणों को अद्यतन करेगा, और विज़ुअलाइज़ेशन वीवर उन्हें उड़ने पर अपडेट करेगा।
Comments
Post a Comment