يتأرجح:كيف تقرأ المعلومات الرسومية الموجودة أسفل المكون؟

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

سؤال

كيف يمكنني "قراءة" المعلومات الرسومية تحت أحد المكونات(دعنا نقول كما صورة مخزنة)?

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

من المحتمل أن يكون أسلوبي خاطئًا:
أحاول الحصول على معلومات رسومية من مثيل Graphics2D المقدم لي في طلاء(...) الطريقة، ولكنها فارغة، أليس كذلك؟

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

المحلول

سؤال:هل المكون الخاص بك هو المستوى الأعلى (على سبيل المثال، هل تريد معرفة ما هو موجود على سطح المكتب ضمن إطار JFrame)، أم أنك تريد فقط معرفة المكونات الموجودة في طبقات أسفل المكون؟

إذا كانت 1)، فمن السهل التقاط لقطة شاشة باستخدام الملف java.awt.Robot طريقة createScreenCapture(Rectangle);ال Rectangle يجب أن تكون حدود نافذتك في هذه الحالة.

إذا كان رقم 2)، فإذا كان لديك إشارة إلى المكون الموجود أسفله، فيمكنك الاستفادة من حقيقة ذلك paint(Graphics) لا يهتم أين Graphics كائن جاء من.يمكنك إنشاء BufferedImage, ، يتصل createGraphics() (في حالة أ Graphics2D المتوقع)، وتمرير النتيجة إلى paint(Graphics) طريقة المكون الذي تريد التقاطه.
لاحظ أنه إذا كان المكون عبارة عن حاوية، فسوف يقوم بطلاء أبنائه أيضًا؛قد يكون هذا أو لا يكون ما تريد.

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