جافا: أي طريق squirreling كائن حول مكون في مكان ما من مكون؟

StackOverflow https://stackoverflow.com/questions/227249

  •  03-07-2019
  •  | 
  •  

سؤال

ونتيجة لمتابعة لبلدي عن java.awt.Component .getName () الملكية ، وأنا أتساءل عما اذا كان هناك وسيلة لsquirreling كائن التعسفي في مكان ما في المكونات، على غرار في العلامة الملكية في. NET ؟ وهذا سيكون مفيد حقا لأية تعليمات برمجية يعمل إلى مكون ولكن لا تعرف بالضرورة ما هو هذا العنصر.

وعلى سبيل المثال، ويقول أنا أحاول أن تنفيذ نظام المساعدة على نطاق التطبيق الذي يعرف أن ننظر إلى أي مكون أشار حاليا عن طريق الماوس، والوصول إلى هذا المكون وسحب انها مساعدة النص وعرضه في انها جزء الخاصة على الشاشة (لا، أنا لا أريد أن استخدام تلميح الأدوات). جوابي هو حاليا لاستخدام اسم (getName () / setName ()) لتخزين التعليمات، وهذا العمل، ولكن يجب أن يكون اسم السلسلة. إذا أردت الحصول على مربي الحيوانات وتخزين أي شيء آخر من سلسلة، وأنا أعتقد أن يكون عالقا.

هل كانت مفيدة؟

المحلول

وعموما أنا إنشاء تجزئة ووضع (عنصر، كوكي) كلما إضافة عنصر إلى الشاشة. عندما كنت في حاجة الكائن الكعكة الخاصة بك مرة أخرى (في حدث ربما)، الحدث يحصل دائما على نسخة من المكون، ومن ثم كنت مجرد الحصول على (عنصر) بعيدا عن الكوكيز.

في بعض الظروف القاسية، لقد subclassed مراقبة ومجرد إضافة حقل. انها حل سريع وقذرة منذ إن شاء subclasses ترث العنصر هو تماما مثل بضعة أسطر من رمز ويمكن أن تذهب في نفس الفئة الملف حيث كنت توليد الشاشة. وهذا مفيد فقط إذا كنت بحاجة فقط لتخزين البيانات الخاصة بك متصلة نوع واحد من السيطرة عليها.

نصائح أخرى

وJComponent ديه putClientProperty وgetClientProperty.

ومكون لايوجد طريقة للقيام بذلك. ومع ذلك، فإن خيار واحد يتمثل في استخدام خريطة ثابتة وتوفير التفاف حول ذلك حتى تتمكن من الاستعلام عن البيانات المتعلقة بأي UI (أو غيرها) الكائن. لقد فعلت هذا الشيء من قبل وطالما كنت إعداده كنوع من الخدمة مع واجهات، يمكن أن يكون أنيق جدا، وليس كسر تصميم OO الخاص بك.

نعم، يمكنك استخدام الحصول على / setName لوضع نوع من المعرف، ثم استخدم هذا المعرف لرسم الخرائط لمساعدتكم. الاشياء JavaHelp CSH يعمل نوع من هذا القبيل، إلا أنني أعتقد أن هذا وضع المكون نفسها إلى الخريطة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top