मुझे आपके डर की पुष्टि करने के लिए खेद है, लेकिन यह जावा में नहीं किया जा सकता है।
चूंकि विंडोज एक्सप्लोरर नियंत्रण में है, आइकन ओवरले प्लग-इन की तरह है। इसे एक डीएलएल (जेएनआई नहीं बल्कि एक वास्तविक देशी डीएलएल) के रूप में कार्यान्वित किया जाना है, और विंडोज रजिस्ट्री में पंजीकृत है। जैसा कि आपने कोडप्रोजेक्ट आलेख में देखा था, आपके डीएलएल को विशिष्ट इंटरफ़ेस - IShellIconOverlayIdentifier
लागू करना होगा।
उदाहरण के लिए TortoiseSVN implementation लें।
TortoiseSVN के DLL एक्सप्लोरर द्वारा लोड और अपनी प्रक्रिया से जुड़ा हुआ है:
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /* lpReserved */)
{
...
if (dwReason == DLL_PROCESS_ATTACH)
...
आदेश जावा में यह करने के लिए आप एक DLL कि JVM और अपने जार जो एक होगा लोड होगा लिखने के लिए की आवश्यकता होगी overkill।
ट्रे आइकन ओवरले के लिए, आपका जावा एप्लिकेशन नियंत्रण में है इसलिए यह किया जा सकता है।
अच्छा सवाल है, लेकिन मैं इसे के रूप में जावा कार्यक्रमों में चलाने ऐसा करना संभव नहीं है लगता होगा जावा आभासी मशीन, जो उन्हें चल रहे ऑपरेटिंग सिस्टम से निकाल देती है। उत्तर के रूप में पोस्ट नहीं कर रहा है क्योंकि मुझे यकीन नहीं है। –
आपको वास्तव में परिवर्तन करने के लिए देशी कोड में कूदने के लिए जेएनआई का उपयोग करने की आवश्यकता होगी (यानी, अगर यह कुछ WinAPI के माध्यम से भी संभव है)। – Java42
@ डब्ल्यू। गोमेन हां, यह जावा में भिन्न या असंभव प्रतीत होता है, लेकिन मुझे लगता है कि ऐसा करने का एक आसान तरीका होना चाहिए। मुझे नहीं पता लेकिन शायद जावा या इत्यादि में आइकन ओवरलेइंग के लिए लाइब्रेरी है – baharcglr