الحدود ذات الزوايا الدائرية والشفافية
يتناول هذا السؤال مسألة إنشاء حدود مستديرة ذات شفافية، مما يسمح للمكون الأساسي بالظهور من خلالها . يتضمن الحل تعديل فئة TextBubbleBorder لطلاء لون الخلفية للأصل خارج منطقة مقطع الحدود.
الحل:
التعديل الذي تم إجراؤه على فئة TextBubbleBorder هو كما يلي يتبع:// قم برسم لون BG للأصل، في كل مكان خارج المقطع // من فقاعة النص. المكون الأصلي = c.getParent(); إذا (الأصل!=فارغة) { اللون bg =parent.getBackground(); Rectangle rect = new Rectangle(0,0,width, height); منطقة borderRegion = منطقة جديدة (rect)؛ borderRegion.subtract(area); g2.setClip(borderRegion); g2.setColor(bg); g2.fillRect(0, 0, width, height); g2.setClip(null);// Paint the BG color of the parent, everywhere outside the clip // of the text bubble. Component parent = c.getParent(); if (parent!=null) { Color bg = parent.getBackground(); Rectangle rect = new Rectangle(0,0,width, height); Area borderRegion = new Area(rect); borderRegion.subtract(area); g2.setClip(borderRegion); g2.setColor(bg); g2.fillRect(0, 0, width, height); g2.setClip(null); }يقوم هذا الكود باسترداد المكون الأصلي ولون خلفيته. ثم يقوم بإنشاء منطقة تمثل المنطقة الحدودية ويطرح منها مناطق الفقاعة والمؤشر. هذا يحدد المنطقة خارج الحدود.مع مجموعة منطقة المقطع، يملأ الكود المنطقة بلون خلفية المكون الأصلي، مما يجعل الحدود شفافة خارج الزوايا الدائرية.
اعتبارات إضافية:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3