سؤال

أواجه بعض المشاكل مع SETCLIP في جافا. لدي فصل يمتد JPanel. داخل تلك الفئة كنت قد تجاوزت طريقة PaintComponent. تبدو طريقة PaintComponent الخاصة بي شيءا مثل هذا:

paintComponent {
    //draw some lines here
    Rectangle whole = g2.getClipBounds();//g2 is my Graphics2D object
    Rectangle part = <some rectangle that is a part of the whole paintable area>;
    g2.setClip(part);
    //draw some more stuff here
    g2.setClip(whole);
}

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

أتصور أنني أفتقد شيئا ما في كيفية عمل SETCLIP.

أي اقتراحات سيكون موضع تقدير كبير. شكرا مقدما على أي مساعدة.

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

المحلول

إنشاء كائن رسومات جديد من القديم فعلت الخدعة بالنسبة لي، كما ينصحها توم.

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