"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إعادة طلاء مكونات التأرجح الشفافة بشكل صحيح؟

كيفية إعادة طلاء مكونات التأرجح الشفافة بشكل صحيح؟

تم النشر بتاريخ 2024-11-25
تصفح:600

How to Properly Repaint Translucent Swing Components?

كيفية التعامل مع إعادة الطلاء على إطار / لوحة / مكون نصف شفاف

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

فهم AlphaComposite

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

تنفيذ مكون شفاف

أحد الأساليب هو توسيع JLabel وتنفيذ Icon. يتيح ذلك إنشاء مكون شفاف يمكنه عرض النص.

تعديل الإطار بأكمله ليكون شفافًا

لجعل الإطار بأكمله شفافًا، اضبط لون خلفية الإطار ليحتوي على مكون الشفافية. ومع ذلك، من المهم ملاحظة أن هذا سيؤثر أيضًا على عتامة المحتوى.

أمثلة التعليمات البرمجية

مثال JLabel:

import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JLabel;

public class TranslucentJLabel extends JLabel {

    public TranslucentJLabel() {
        setOpaque(false);
        setBackground(new Color(0f, 0f, 0f, 0.5f));
        setFont(new Font("Serif", Font.PLAIN, 48));
    }

    @Override
    protected void paintComponent(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        g2d.setComposite(AlphaComposite.SrcOver);
        super.paintComponent(g2d);
    }

}

مثال للإطار الشفاف:

import java.awt.AlphaComposite;
import java.awt.Color;
import javax.swing.JFrame;

public class TranslucentFrame extends JFrame {

    public TranslucentFrame() {
        setBackground(new Color(0f, 0f, 0f, 0.7f));
        setUndecorated(true);
        setSize(300, 200);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    @Override
    public void paint(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        g2d.setComposite(AlphaComposite.SrcOver);
        super.paint(g2d);
    }
}

من خلال تنفيذ هذه التقنيات، يمكنك إنشاء إطارات ومكونات شفافة ذات سلوك فعال في إعادة الطلاء.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3