• 0

كيف أطبّق ألوان متدرجة لملأ الأشكال في جافا؟

أريد إنشاء ألوان متدرجة أو لون شعاعي في جافا وتطبيقها على الرسم كيف يمكن ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يتم إنشاء ألوان متدرجة أو لون من مجموعة ألوان في جافا باستخدام GradientPaint وهو صف class يقوم بتحديد الألوان التي ستطبق على العنصر المرسوم باستخدام المنشئ Constructor 

GradientPaint gp1 = new GradientPaint(5, 5, Color.red, 20, 20, Color.yellow, true);

قم باستيراد المكتبات التالية:

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

أنشئ صف class وليكن مثلًا GradientRedYellow واجعله يرث من الصف JPanel.

أنشئ الدالة paint واكتب الشيفرة التالية:

public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;

    GradientPaint gp1 = new GradientPaint(5, 5, Color.red, 20, 20, Color.yellow, true);

ثم استدعي الدالة setPaint وارسم الشكل الذي تريد تطبيق اللون عليه كما في المثال التالي:

g2d.setPaint(gp1);
g2d.fillRect(20, 20, 300, 40);

ثم إنشاء الواجهة JFrame كالمعتاد. المثال التالي يوضح ذلك بشكل كامل:

public class GradientsRedYellow extends JPanel {

  public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;

    GradientPaint gp1 = new GradientPaint(5, 5, Color.red, 20, 20, Color.yellow, true);

    g2d.setPaint(gp1);
    g2d.fillRect(20, 20, 300, 40);

  }

  public static void main(String[] args) {

    JFrame frame = new JFrame("GradientsRedYellow");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new GradientsRedYellow());
    frame.setSize(350, 350);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
  }
}

النتيجة:

GradientPaint.thumb.png.7316a820648e0be8

تمّ تعديل بواسطة Lujain

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن