CodeGym /جاوا بلاگ /Random-UR /Java.Awt.Color کلاس
John Squirrels
سطح
San Francisco

Java.Awt.Color کلاس

گروپ میں شائع ہوا۔
اگر آپ Java Abstract Toolkit میں مہارت حاصل کر رہے ہیں، تو آپ کو Java AWT کلر کلاس کی ایپلی کیشنز سیکھنی ہوں گی۔ چونکہ اس میں بہت سارے کنسٹرکٹرز اور طریقے شامل ہیں، اس لیے یہ سب سے پہلے خوفناک محسوس کر سکتا ہے۔ لیکن پریشان ہونے کی کوئی بات نہیں، ہم نے آپ کا احاطہ کیا ہے:) جاوا AWT کلر پر اس مکمل رن ڈاؤن کے ساتھ، آپ یہ سیکھیں گے کہ رنگ کی نئی قسم کیسے بنائی جاتی ہے اور اسے بغیر کسی وقت کے منظم کیا جاتا ہے۔ ہم کچھ پریکٹس ٹیسٹ بھی پیش کریں گے جو آپ کی مہارت کو بہتر بنانے میں آپ کی مدد کریں گے۔

جاوا میں AWT کلر کلاس کیا ہے؟

AWT کلر کا بنیادی مقصد یہ ہے کہ ڈویلپرز کو RGB (سرخ، سبز، نیلا)، RGBA (سرخ، سبز، نیلا، الفا)، یا HSB (رنگ، ​​سنترپتی، BRI اجزاء) پیکجوں کا استعمال کرتے ہوئے جاوا کوڈ کا استعمال کرتے ہوئے نئے رنگ بنانے کی اجازت دینا ہے۔ کلاس میں دو اقدار ہیں - سایہ کا کوڈ اور دھندلاپن/شفافیت کی قدر۔ Java.Awt.Color کلاس - 1یہاں آپ کلاس java.awt.Color کا اعلان کیسے کرتے ہیں:
public class Color
   extends Object
      implements Paint, Serializable
Class.java.awt.Color کا استعمال کرتے ہوئے مختلف قسم کے رنگوں کا اعلان کرنے کے لیے، ڈویلپر کنسٹرکٹرز کا استعمال کرتے ہیں - ہم اب ان پر ایک نظر ڈالیں گے۔

جاوا میں AWT.Color کنسٹرکٹرز

آپ جس رنگ کو بنانا چاہتے ہیں اس کے پیرامیٹر پر منحصر ہے، آپ کو ایک مخصوص قسم کا رنگ کنسٹرکٹر استعمال کرنے کی ضرورت ہوگی۔ ان میں سے ایک مٹھی بھر ہے - آئیے ایک ایک کرکے ان کا جائزہ لیں۔
  • Color(float r, float g, float b)وہ کلاس ہے جسے آپ RGB کلر سکیم میں رنگ کی وضاحت کرنے کے لیے استعمال کرتے ہیں جو مبہم ہے۔ آپ رنگ کی حد 0.0 اور 0.1 کے درمیان کہیں بھی بتا سکتے ہیں۔
  • Color(float r, float b, float g, float a)وہ کلاس ہے جو RGBA رنگ کی وضاحت کرتی ہے (دستیاب اقدار کی حد 0.0 اور 0.1 ہے)۔
  • Color(ColorSpace c, float[], co, float a)ColorSpace میں ایک رنگ کی وضاحت کرتا ہے جسے آپ پہلے بیان کرتے ہیں۔ ایک ڈویلپر ایک متعین الفا کے فلوٹ سرنی میں رنگ کے اجزاء کی حد کی وضاحت کرتا ہے۔
  • Color(int, rgb)آرجیبی رنگ (مبہم) بنانے والی کلاس ہے۔ کنسٹرکٹر کے اجزاء کی قدر پر توجہ دینا یقینی بنائیں - سرخ کے لیے 16-23، سبز کے لیے 8-15، نیلے کے لیے 0-7۔
  • Color(int r, int g, int b)- ایک مبہم آر جی بی رنگ کی وضاحت کے لیے استعمال ہونے والا طریقہ۔ رنگ کی قدر 0 اور 255 کے درمیان ہونی چاہیے۔
  • Color(int r, int g, int b, int a)- آر جی بی اے اسکیم (0-255) میں ایک رنگ بناتا ہے۔
  • Color(int rgba, boolean b)ایک متعین مشترکہ قدر کے اندر sRGB رنگ بنانے کے لیے استعمال کیا جاتا ہے۔ اقدار کی حد الفا کے لیے 24-31، سرخ کے لیے 16-23، سبز کے لیے 8-15، اور نیلے رنگ کے لیے 0-7 تک پھیلی ہوئی ہے۔
اس کے علاوہ، class.awt.color فیلڈز کے ساتھ کام کرتا ہے، اس سے وراثت میں ملا ہے Java.awt.Transparency:
  • TRANSLUCENTیہ ظاہر کرتا ہے کہ آیا رنگ الفا ویلیوز پر مشتمل ہے اور اس کی دو قدریں ہیں - 0 اور 1۔
  • OPAQUEآبجیکٹ کو 1 کی الفا ویلیو تفویض کرتا ہے اس کی مکمل مبہمیت کی ضمانت دیتا ہے۔
  • BITMASKمطلق مبہمیت یا شفافیت کی قدر کی نمائندگی کرتا ہے اور (0;1) کی حد میں ہے جہاں 0 مکمل شفافیت ہے اور 1 انتہائی مبہم پن ہے۔

جاوا AWT کلر کلاس کے ساتھ استعمال کرنے کے ٹاپ 15 طریقے

کسی رنگ میں ہیرا پھیری کرنے، اس کی تاریکی یا چمک کو ایڈجسٹ کرنے کے لیے، جاوا کے ڈویلپرز مختلف طریقوں پر انحصار کرتے ہیں۔ ان میں سے درجنوں ہیں لہذا آپ کو ان سب کو دل سے سیکھنے کی ضرورت نہیں ہے۔ تاہم، جب سب سے زیادہ استعمال ہونے والے Java AWT کلر طریقوں کی بات آتی ہے، تو ہم نے فہرست کو کم کر کے پندرہ کر دیا۔ جاوا API دستاویزات کا حوالہ دیئے بغیر ان کو یاد رکھنا ڈویلپرز کے لیے مددگار ثابت ہوگا۔

گہرا ()

یہ طریقہ ایک نیا رنگ بنانے کے لیے استعمال کیا جاتا ہے جو اس رنگ کا گہرا ورژن ہے جس کی آپ نے پہلے ہی وضاحت کی ہے۔ مثال :
Color.green.darker()
اگر darker()ایک بار درخواست دینا آپ کی ضرورت کا سایہ بنانے کے لیے کافی نہیں ہے، تو جتنی بار آپ چاہیں اس طریقہ کو بلا جھجک دوبارہ لاگو کریں، جیسا کہ ذیل میں دکھایا گیا ہے:
Color.green.darker().darker().darker().darker().darker()

روشن ()

جیسا کہ نام سے پتہ چلتا ہے، Color brighter()آپ کے پاس پہلے سے موجود سایہ کو روشن کرنے کے لیے استعمال کیا جاتا ہے۔ اسی طرح darker()، یہ فی ایک رنگ متعدد بار استعمال کیا جا سکتا ہے. مثال :
Color myColor = Color.RED;

    JLabel label = new JLabel("First Name");
    label.setForeground(myColor.brighter());

int getAlpha()

اگر آپ اپنے رنگ کا الفا جزو واپس کرنا چاہتے ہیں تو یہ طریقہ استعمال کریں۔ ذہن میں رکھیں کہ الفا اقدار 0-255 کی حد کے اندر ہوتی ہیں۔ طریقہ کے اطلاق اور واپسی کی مثال یہ ہے۔ مثال :
alpha = Color.black.getAlpha();
return new Color(components[0], components[1], components[2], alpha);

جامد رنگ گیٹ کلر (اسٹرنگ این ایم)

جاوا کے ڈویلپرز سسٹم کی خصوصیات کا استعمال کرتے ہوئے رنگ تلاش کرنے کے لیے یہ طریقہ استعمال کر سکتے ہیں۔ اسی طرح کے مقاصد کو سنبھالنے کے دوسرے طریقے ہیں:
  • static Color getColor(String nm, int v)
  • static Color getColor(String nm, Color v)

جامد کلر ڈی کوڈ (سٹرنگ این ایم)

یہ طریقہ استعمال کیا جاتا ہے ایک سٹرنگ کے طور پر ایک رنگ دکھائیں. تبدیلی مکمل ہونے کے بعد، ایک ڈویلپر کو ایک واضح مبہم رنگ ملے گا۔ مثال :
public static Color decodeColor(String hexColor) {

 return Color.decode(hexColor);

PaintContext createContext(ColorModel cm، Rectangle r، Rectangle2D r2d، AffineTransform xform، RenderingHints اشارے)

یہ طریقہ پیچیدہ لگتا ہے لیکن جوڑ توڑ کرنا اس سے کہیں زیادہ آسان ہے۔ Paint Context CreateContext()بار بار ٹھوس رنگ کے پیٹرن کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے۔ مثال :
public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds,

                  AffineTransform xform, RenderingHints hints)

 {
   try
   {
     return new AxialShadingContext(shading, cm, xform, matrix, deviceBounds);
   }
   catch (IOException e)

   {

     LOG.error("An error occurred while painting", e);

     return new Color(0, 0, 0, 0).createContext(cm, deviceBounds, userBounds, xform, hints);

   }
 }
}

float[] getComponents(ColorSpace cspace, float[] compArray)

یہ جاوا کا ایک طریقہ ہے جسے آپ رنگ پر لاگو کر سکتے ہیں تاکہ اس کے فلوٹ سرنی اور الفا اجزاء کو واپس کیا جا سکے۔ طریقہ ColorSpaceسی اسپیس کے ذریعہ بیان کردہ دیئے گئے پر لاگو ہوتا ہے۔ مثال :
public float[] getComponents(ColorSpace cspace, float[] compArray) {

return myColor.getComponents(cspace, compArray);

}

کلر اسپیس حاصل کریں کلر اسپیس ()

جاوا کے ڈویلپرز اس طریقہ کو استعمال کرتے ہوئے کسی منتخب رنگ کے لیے رنگ کی جگہ واپس کر سکتے ہیں۔ دیے گئے اندراج کے لیے رنگ کی جگہ حاصل کرنے کا دوسرا طریقہ Arrays.to.String کا اطلاق کرنا ہے۔ یہ ایک زیادہ پیچیدہ حکمت عملی ہے، جیسا کہ ذیل کی مثال میں دیکھا گیا ہے: مثالیں :
public class Main {
  public static void main(String[] args) {

    Color myColor = Color.RED;

    System.out.println(Arrays.toString(myColor.getComponents(ColorSpace.getInstance(ColorSpace.CS_CIEXYZ),null)));

گیٹ ایچ ایس بی رنگ (فلوٹ ایچ، فلوٹ ایس، فلوٹ بی)

جاوا کے ڈویلپرز HSB ماڈل کی اقدار کی بنیاد پر ایک نیا رنگ آبجیکٹ بنانے کے لیے اس طریقہ کو لاگو کرتے ہیں۔ مثال :
private Color colorAt(int y)

 {
   return Color.getHSBColor(1 - (float) y / (height - 1), 1, 1);
 }
}

getGreen()	returns the green component in the range 0-255 in the default sRGB space.

getGreen()

یہ جاوا طریقہ آپ کے بنائے ہوئے رنگ کے لیے سبز جز کی قدر واپس کرتا ہے۔ تمام قدریں اس رینج کے اندر فٹ ہوتی ہیں جو RGB رنگ سکیم میں سبز سے مماثل ہے۔ مثال :
Color clickBoxColor = new Color(color.getRed(), color.getGreen(), color.getBlue(), 20);

getRed()

اسی طرح سے getGreen()، getRedدیے گئے رنگ کے سرخ جز کی قدر لوٹاتا ہے۔ آپ پہلے ہی دیکھ چکے ہیں کہ طریقہ اوپر کی مثال میں کیسے لاگو کیا گیا تھا۔

getBlue()

یہ طریقہ آرجیبی رنگ سکیم کی قدروں کی حد کے اندر نیلے رنگ کی قدر واپس کرتا ہے۔ اسی طرح، استعمال کرنے کی مثال کے لیے getBlue()، کی تفصیل دیکھیں getGreen()۔

getAlpha()

getAlpha() طریقہ جاوا میں استعمال ہوتا ہے جب کوئی ڈویلپر کسی رنگ کی الفا ویلیو تلاش کرنا چاہتا ہے۔ اسی طرح RBG کی طرح، تمام رنگوں کے الفا 0-255 کی حد کے اندر ہوتے ہیں۔ مثال : getAlpha()لوپ کے حصے کے طور پر استعمال ہونے کا طریقہ یہاں ہے۔
int alpha = color.getAlpha();
	if (alpha != 255)
	{
		setStrokeAlpha(alpha);
		strokeAlphaSet = true;

شفافیت حاصل کریں()

یہ طریقہ شفافیت کی قیمت واپس کرتا ہے جسے آپ یا کسی اور ڈویلپر نے رنگ بناتے وقت اس کے لیے مخصوص کیا ہے۔ مثال :
public int getTransparency() {

return myColor.getTransparency();

بولین برابر (آبجیکٹ آبجیکٹ)

اگر آپ دو رنگوں کا ایک دوسرے سے موازنہ کر رہے ہیں تو یہ طریقہ انتہائی مفید ہے۔ یہ جاوا ڈویلپرز کو یہ جاننے دیتا ہے کہ آیا دو رنگوں کی اشیاء کی قدریں برابر ہیں۔ مثال :
import java.awt.Color;
public class Main {
  public static void main(String[] a) {
    Color myBlack = new Color(0, 0, 0); // Color black
    Color myWhite = new Color(255, 255, 255); // Color white
    System.out.println(myBlack.equals(myWhite));
  }
}

برابر (آبجیکٹ آبجیکٹ)

اسی طرح boolean equals(Object obj)، یہ ایک تقابلی طریقہ ہے۔ ہم اسے اس بات کا تعین کرنے کے لیے استعمال کرتے ہیں کہ آیا رنگین اشیاء ایک دوسرے کے برابر ہیں۔ مثال :
Object a = new Object(); Object b = new Object(); return(a.equals(b));

جاوا میں استعمال ہونے والے اہم رنگوں کے لیے گائیڈ

اب جب کہ آپ کو جاوا میں رنگوں میں ہیرا پھیری کے لیے استعمال کیے جانے والے طریقوں کی سمجھ ہے، آئیے ان فیلڈ کی اقسام پر ایک نظر ڈالیں جن کے ساتھ آپ کام کریں گے۔ یہ اصل جامد رنگ ہیں جو جاوا کے ڈویلپرز کی وضاحت کر سکتے ہیں۔ آپ یا تو کسی رنگ کا نام درج کر کے اس کی وضاحت کر سکتے ہیں (یقینی بنائیں کہ آپ اسے بالکل اسی طرح درج کرتے ہیں جس طرح سرکاری دستاویزات میں لکھا گیا ہے) یا اس کی RGB قدر کی وضاحت کر سکتے ہیں۔ آئیے پیلیٹ ڈویلپرز کے استعمال پر ایک نظر ڈالتے ہیں:
فیلڈ کا نام تفصیل
جامد رنگ سیاہ (سیاہ) سیاہ رنگ کی وضاحت کرتا ہے۔
جامد رنگ سفید (سفید) سفید رنگ کی وضاحت کرتا ہے۔
جامد رنگ نیلا (بلیو) نیلے رنگ کی وضاحت کے لیے استعمال کیا جاتا ہے۔
جامد رنگ گرے (گرے) سرمئی رنگ کی وضاحت کرتا ہے۔
جامد رنگ گہرا خاکستری (DARK_GRAY) بھوری رنگ کے گہرے شیڈ کی وضاحت کرتا ہے۔
جامد رنگ ہلکا گرے (LIGHT_GRAY) بھوری رنگ کے ہلکے سایہ کی وضاحت کرتا ہے۔
جامد رنگ سبز (سبز) سبز رنگ کی وضاحت کے لیے استعمال کیا جاتا ہے۔
جامد رنگین قرمزی (میجنٹا) میجنٹا شیڈ کی وضاحت کرتا ہے۔
جامد رنگ گلابی (گلابی) جاوا میں گلابی کی وضاحت کرتا ہے۔
جامد رنگ نارنجی (نارنگی) جاوا میں نارنجی رنگ بناتا ہے۔
جامد رنگ پیلا (پیلا) پیلے رنگ کی وضاحت کے لیے استعمال کیا جاتا ہے۔
جامد رنگ سرخ (RED) جاوا میں سرخ رنگ کی وضاحت کرتا ہے۔

جاوا میں AWT.Color استعمال کرنے کے لیے پریکٹس کے مسائل

کیا آپ کو لگتا ہے کہ آپ کے پاس جاوا میں AWT کلر کی ٹھوس بنیاد ہے؟ آئیے چند عملی مسائل کو حل کر کے ان مہارتوں کو جانچتے ہیں - یہاں، آپ کو کنسٹرکٹرز اور عام طریقوں کے ساتھ ساتھ دیگر غیر رنگ سے متعلق جاوا ٹولز کا اطلاق کرنا ہوگا۔ پریکٹس کا مسئلہ نمبر 1 ۔ ایک حسب ضرورت جزو بنائیں جو ایک پروگرام کے صارف کو RGB کی سطح کو رنگ میں موافقت کرنے دیتا ہے (کی طرح RGBColorChooser)۔ اپنے اجزاء میں getColor() کو شامل کرنا یقینی بنائیں۔ جزو کو پینل سب کلاس بنائیں، ایپلٹ نہیں۔ جواب : یہ کافی پیچیدہ مسئلہ ہے - آئیے اسے قابل انتظام مراحل میں تقسیم کرتے ہیں:
  1. RGBChooserایک جزو میں تبدیل کریں ۔
  2. جزو میں ایک نیا معمول شامل کریں - getColor()۔
  3. setColor()رنگ سیٹ کرنے کے لیے شامل کریں ۔
یہ نمونہ کوڈ ہے جو آپ کو دن کے آخر میں حاصل کرنا چاہئے:
import java.awt.*;
    import java.awt.event.*;

    public class RGBChooserComponent extends Panel implements AdjustmentListener {

       private Scrollbar redScroll, greenScroll, blueScroll;   // Scroll bars.

       private Label redLabel, greenLabel, blueLabel;  // For displaying RGB values.


       private Canvas colorCanvas;  // Color patch for displaying the color.

       public RGBChooserComponent() {  // Constructor.

           /*Now let’s add scrollbars with values from 0 to 255. */

           redScroll = new Scrollbar(Scrollbar.HORIZONTAL, 0, 10, 0, 265);
           greenScroll = new Scrollbar(Scrollbar.HORIZONTAL, 0, 10, 0, 265);
           blueScroll = new Scrollbar(Scrollbar.HORIZONTAL, 0, 10, 0, 265);

           /* Create Labels showing current RGB and HSB values. */

           redLabel = new Label(" R = 0");
           greenLabel = new Label(" G = 0");
           blueLabel = new Label(" B = 0");

           /* We are setting backgrounds for Scrollbars and Labels, so they get the default
              gray background of the applet. */

           redScroll.setBackground(Color.lightGray);
           greenScroll.setBackground(Color.lightGray);
           blueScroll.setBackground(Color.lightGray);

           redLabel.setBackground(Color.white);
           greenLabel.setBackground(Color.white);
           blueLabel.setBackground(Color.white);

           /* Establish a panel that would listen for changes to the Scrollbars' values */

           redScroll.addAdjustmentListener(this);
           greenScroll.addAdjustmentListener(this);
           blueScroll.addAdjustmentListener(this);

           /* Add a canva, the background color of which will always match the currently selected color. */

           colorCanvas = new Canvas();
           colorCanvas.setBackground(Color.black);

           /* Create the applet layout, which consists of a row of
              three equal-sized regions holding the Scrollbars,
              the Labels, and the color patch.  The background color
              of the applet is gray, which will show around the edges
              and between components. */

           setLayout(new GridLayout(1,3,3,3));
           setBackground(Color.gray);
           Panel scrolls = new Panel();
           Panel labels = new Panel();

           add(scrolls);
           add(labels);
           add(colorCanvas);

           /* Add the Scrollbars and the Labels to their respective panels. */

           scrolls.setLayout(new GridLayout(3,1,2,2));
           scrolls.add(redScroll);
           scrolls.add(greenScroll);
           scrolls.add(blueScroll);

           labels.setLayout(new GridLayout(3,1,2,2));
           labels.add(redLabel);
           labels.add(greenLabel);
           labels.add(blueLabel);

       } // end init();


       public Color getColor() {
              // Get the color currently displayed by the component.
           int r = redScroll.getValue();
           int g = greenScroll.getValue();
           int b = blueScroll.getValue();
           return new Color(r, g, b);
       }


       public void setColor(Color c) {
             // Set the component to display the given color.
             // (Ignore this if c is null.)
          if (c != null) {
             int r = c.getRed();      // Get the color levels from the color.
             int g = c.getGreen();
             int b = c.getBlue();
             redLabel.setText(" R = " + r);   // Set the labels.
             greenLabel.setText(" G = " + g);
             blueLabel.setText(" B = " + b);
             redScroll.setValue(r);        // Set the scrollbars.
             greenScroll.setValue(g);
             blueScroll.setValue(b);
             colorCanvas.setBackground(new Color(r,g,b));  // Set the canvas.
             colorCanvas.repaint();
          }
       }


       public Dimension getMinimumSize() {
              // Specify the minimum reasonable size of this component.
          return new Dimension(150,40);
       }


       public Dimension getPreferredSize() {
              // Specify the preferred size of this component.
          return new Dimension(280,80);
       }


       public void adjustmentValueChanged(AdjustmentEvent evt) {
               // This is called when the user has changed the values on
               // one of the scrollbars.  All the scrollbars are checked,
               // the labels are set to display the correct values,
               // and the color patch is reset to correspond to the new color.
           int r = redScroll.getValue();
           int g = greenScroll.getValue();
           int b = blueScroll.getValue();
           redLabel.setText(" R = " + r);
           greenLabel.setText(" G = " + g);
           blueLabel.setText(" B = " + b);
           colorCanvas.setBackground(new Color(r,g,b));
           colorCanvas.repaint();  // Redraw the canvas in its new color.
       } // end adjustmentValueChanged


       public Insets getInsets() {
              // The system calls this method to find out how much space to
              // leave between the edges of the applet and the components that
              // it contains.  I want a 2-pixel border at each edge.
          return new Insets(2,2,2,2);
       }

    }  // end class RGBColorChooser

نتیجہ

مبارک ہو، آپ نے جاوا میں AWT.Color پر اس وسیع گائیڈ کو حاصل کر لیا ہے۔ اب انٹرفیس کو سنبھالنا بہت آسان ہو جائے گا۔ پریکٹس کے مسائل اور CodeGym کوئزز کو حل کرکے اپنے علم کا اطلاق کرنا نہ بھولیں۔ پریکٹس کامل بناتی ہے لہذا نمونے کے مسائل کو اپنی بہترین شاٹ دیں!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION