दिलचस्प पोस्ट
बाल टैग में नेस्टेड नहीं केवल पाठ प्राप्त करने के लिए .text () का उपयोग करना इट इन स्विफ्ट के लिए अग्रणी शस्त्र प्रारूप में दो बार स्टाम्प की तुलना कैसे करें "महीना दिनांक hh: mm: ss" को + ve या -ve मान की जांच के लिए हेडर और स्रोत फाइल सी में कैसे काम करते हैं? क्लास में मेरे पास एक गैर-अभिन्न स्थिर कॉन्स्ट सदस्य क्यों नहीं हो सकता? मैन्युअल रूप से सत्यापन के साथ jQuery के सत्यापन के लिए कैसे? दृश्य स्टूडियो 2012 में पुस्तकालयों को कैसे शामिल करें? रैक मिडलवेयर क्या है? रेड्यूक्स के साथ प्रतिक्रिया? 'संदर्भ' के मुद्दे के बारे में क्या? एक संपत्ति द्वारा ऑब्जेक्ट की सरणी सूची कैसे सॉर्ट करें? जावास्क्रिप्ट असिंक्रोनस रिटर्न वैल्यू / असाइनमेंट जे jQuery PowerShell में किसी फ़ंक्शन में मैं कई पैरामीटर कैसे पार करूं? पायथन में खाली सूची बनाना लेंस, एफक्लेबल, डेटा एक्सेसर – संरचना का उपयोग और उत्परिवर्तन के लिए कौन से पुस्तकालय बेहतर है पॉइंटर के संदर्भ में और एक सूचक के संदर्भ में अंतर

गहराई के स्तर के अनुसार जेटी्री नोड आइकन बदलें

मैं अपने जेटी्री (स्विंग) के विभिन्न आइकनों को बदलने की तलाश कर रहा हूं

जावा प्रलेखन बताता है कि अगर नोड एक पत्ती है या नहीं, तो आइकनों को कैसे बदलना है, लेकिन वास्तव में यह नहीं है कि मैं क्या खोज रहा हूं।

मेरे लिए यह कोई फर्क नहीं पड़ता कि नोड एक पत्ता है या, यदि मैं तीनों के प्रथम / द्वितीय / तीसरे गहराई के स्तर में नोड है, तो मैं सिर्फ माउस को बदलना चाहता हूं।

Solutions Collecting From Web of "गहराई के स्तर के अनुसार जेटी्री नोड आइकन बदलें"

कस्टम TreeCellRenderer लिए एक विकल्प के रूप में TreeCellRenderer , आप collapsedIcon TreeCellRenderer और expandedIcon लिए UI डिफ़ॉल्ट को बदल सकते हैं:

 Icon expanded = new TreeIcon(true, Color.red); Icon collapsed = new TreeIcon(false, Color.blue); UIManager.put("Tree.collapsedIcon", collapsed); UIManager.put("Tree.expandedIcon", expanded); 

TreeIcon बस Icon इंटरफ़ेस का कार्यान्वयन है:

 class TreeIcon implements Icon { private static final int SIZE = 14; private boolean expanded; private Color color; public TreeIcon(boolean expanded, Color color) { this.expanded = expanded; this.color = color; } //@Override public void paintIcon(Component c, Graphics g, int x, int y) { Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setPaint(color); if (expanded) { g2d.fillOval(x + SIZE / 4, y, SIZE / 2, SIZE); } else { g2d.fillOval(x, y + SIZE / 4, SIZE, SIZE / 2); } } //@Override public int getIconWidth() { return SIZE; } //@Override public int getIconHeight() { return SIZE; } } 

कस्टम TreeCellRenderer लागू करें – घटक के लिए JLabel उपयोग करें, और अपने आइकन को सेट करें, हालांकि आप पेड़ में संग्रहीत ऑब्जेक्ट के डेटा का इस्तेमाल करना पसंद करते हैं। आपको अपनी गहराई को संग्रहीत करने के लिए ऑब्जेक्ट को लपेटने की आवश्यकता हो सकती है, आदि। यदि ऑब्जेक्ट आदिम है (उदाहरण के लिए स्ट्रिंग)

http://download.oracle.com/javase/7/docs/api/javax/swing/tree/TreeCellRenderer.html http://www.java2s.com/Code/Java/Swing-JFC/TreeCellRenderer.htm