اذهب إلى المحتوى
  • 0

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

عامر بيرادي

السؤال

Recommended Posts

  • 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...