CodeGym /Java Blog /यादृच्छिक /Java.Awt.Color वर्ग
John Squirrels
पातळी 41
San Francisco

Java.Awt.Color वर्ग

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
जर तुम्ही Java Abstract Toolkit मध्ये प्रभुत्व मिळवत असाल तर तुम्हाला Java AWT कलर क्लासचे अॅप्लिकेशन शिकावे लागेल. यामध्ये अनेक कन्स्ट्रक्टर्स आणि पद्धतींचा समावेश असल्याने, ते सुरुवातीला भीतीदायक वाटू शकते. पण काळजी करू नका, आम्ही तुम्हाला कव्हर केले आहे:) Java AWT कलरवर या संपूर्ण रनडाउनसह, तुम्ही नवीन रंग प्रकार कसा तयार करायचा आणि काही वेळात ते कसे व्यवस्थापित करायचे ते शिकाल. आम्ही काही सराव चाचण्या देखील देऊ ज्या तुम्हाला तुमचे कौशल्य सुधारण्यात मदत करतील.

Java मध्ये AWT कलर क्लास म्हणजे काय?

AWT कलरचा प्राथमिक उद्देश विकासकांना RGB (लाल, हिरवा, निळा), RGBA (लाल, हिरवा, निळा, अल्फा), किंवा HSB (रंग, संपृक्तता, BRI घटक) पॅकेजेस वापरून Java कोड वापरून नवीन रंग तयार करण्याची परवानगी देणे हा आहे. वर्गात दोन मूल्ये आहेत - सावलीचा कोड आणि अपारदर्शकता/पारदर्शकता. Java.Awt.Color वर्ग - 1तुम्ही क्लास java.awt.Color कसे घोषित करता ते येथे आहे:

public class Color
   extends Object
      implements Paint, Serializable
Class.java.awt.Color वापरून विविध प्रकारचे रंग घोषित करण्यासाठी, विकसक कन्स्ट्रक्टर वापरतात - आम्ही आता त्यांच्याकडे एक नजर टाकू.

Java मधील AWT.Color Constructors

आपण तयार करू इच्छित रंगाच्या पॅरामीटरवर अवलंबून, आपल्याला विशिष्ट प्रकारचे रंग कन्स्ट्रक्टर वापरण्याची आवश्यकता असेल. यापैकी काही मूठभर आहेत - चला त्यांचे एक-एक करून परीक्षण करूया.
  • Color(float r, float g, float b)RGB कलर स्कीममध्ये अपारदर्शक असलेल्या रंगाची व्याख्या करण्यासाठी तुम्ही वापरता तो वर्ग. तुम्ही ०.० आणि ०.१ दरम्यान कुठेही रंग श्रेणी निर्दिष्ट करू शकता.
  • 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)RGB रंग (अपारदर्शक) तयार करणारा वर्ग आहे. कन्स्ट्रक्टरच्या घटक मूल्याकडे लक्ष देणे सुनिश्चित करा - लाल रंगासाठी 16-23, हिरव्यासाठी 8-15, निळ्यासाठी 0-7.
  • Color(int r, int g, int b)- अपारदर्शक RGB रंग परिभाषित करण्यासाठी वापरलेली पद्धत. रंगाचे मूल्य 0 आणि 255 च्या दरम्यान असावे.
  • Color(int r, int g, int b, int a)- RGBA योजना (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 अत्यंत अपारदर्शकता असते.

Java AWT कलर क्लाससह वापरण्यासाठी शीर्ष 15 पद्धती

रंग हाताळण्यासाठी, त्याचा अंधार किंवा चमक समायोजित करण्यासाठी, Java विकासक वेगवेगळ्या पद्धतींवर अवलंबून असतात. त्यापैकी डझनभर आहेत त्यामुळे तुम्हाला ते सर्व मनापासून शिकण्याची गरज नाही. तथापि, जेव्हा सर्वात जास्त वापरल्या जाणार्‍या Java AWT कलर पद्धतींचा विचार केला जातो, तेव्हा आम्ही यादी पंधरापर्यंत कमी केली आहे. Java 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);

स्थिर रंग getColor(स्ट्रिंग एनएम)

जावा डेव्हलपर सिस्टम गुणधर्म वापरून रंग शोधण्यासाठी ही पद्धत वापरू शकतात. समान उद्दिष्टे हाताळण्यासाठी इतर पद्धती आहेत:
  • 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 hints)

ही पद्धत क्लिष्ट दिसते परंतु ती दिसते त्यापेक्षा हाताळणे सोपे आहे. 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)

ही एक Java पद्धत आहे जी तुम्ही रंगाचा फ्लोट अॅरे आणि अल्फा घटक परत करण्यासाठी लागू करू शकता. पद्धत ColorSpacecspace द्वारे परिभाषित केलेल्यावर लागू होते. उदाहरण :

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

return myColor.getComponents(cspace, compArray);

}

ColorSpace getColorSpace()

जावा डेव्हलपर निवडलेल्या रंगासाठी रंगाची जागा परत करण्यासाठी ही पद्धत वापरू शकतात. दिलेल्या एंट्रीसाठी कलर स्पेस मिळवण्याचा दुसरा मार्ग म्हणजे 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)));

getHSBCcolor(float h, float s, float b)

एचएसबी मॉडेलच्या मूल्यांवर आधारित नवीन रंग ऑब्जेक्ट तयार करण्यासाठी Java विकासक ही पद्धत लागू करतात. उदाहरण :

 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()

ही Java पद्धत तुम्ही तयार केलेल्या रंगासाठी हिरव्या घटकाचे मूल्य परत करते. सर्व मूल्ये RGB कलर स्कीममध्ये हिरव्याशी संबंधित असलेल्या श्रेणीमध्ये बसतात. उदाहरण :

Color clickBoxColor = new Color(color.getRed(), color.getGreen(), color.getBlue(), 20);

getRed()

त्याचप्रमाणे getGreen(), getRedदिलेल्या रंगाच्या लाल घटकासाठी मूल्य मिळवते. वरील उदाहरणात पद्धत कशी लागू केली गेली हे तुम्ही आधीच पाहिले आहे.

getBlue()

ही पद्धत RGB कलर स्कीमच्या मूल्यांच्या श्रेणीमध्ये निळ्या रंगाचे मूल्य परत करते. त्याचप्रमाणे, वापरण्याच्या उदाहरणासाठी getBlue(), चे वर्णन पहा getGreen().

getAlpha()

जेव्हा विकसकाला दिलेल्या रंगाचे अल्फा मूल्य शोधायचे असते तेव्हा Java मध्ये 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));

Java मध्ये वापरल्या जाणार्‍या मुख्य रंगांसाठी मार्गदर्शक

आता तुम्हाला Java मध्ये रंग हाताळण्यासाठी वापरल्या जाणार्‍या पद्धती समजल्या आहेत, चला तुम्ही कोणत्या फील्ड प्रकारांसह काम करणार आहात ते पाहू या. हे वास्तविक स्थिर रंग आहेत जे Java विकासक परिभाषित करू शकतात. तुम्ही एकतर रंगाचे नाव टाकून परिभाषित करू शकता (अधिकृत दस्तऐवजात ते जसे लिहिलेले आहे तसे तुम्ही ते प्रविष्ट केले आहे याची खात्री करा) किंवा त्याचे RGB मूल्य निर्दिष्ट करा. पॅलेट विकसक वापरतात ते पाहूया:
फील्डचे नाव वर्णन
स्थिर रंग काळा (काळा) काळा रंग परिभाषित करते
स्थिर रंग पांढरा (पांढरा) पांढरा रंग परिभाषित करतो
स्थिर रंग निळा (निळा) निळा परिभाषित करण्यासाठी वापरला जातो
स्थिर रंग राखाडी (ग्रे) राखाडी रंग परिभाषित करते
स्थिर रंग गडद राखाडी (DARK_GRAY) राखाडी रंगाची गडद सावली परिभाषित करते
स्थिर रंग हलका राखाडी (LIGHT_GRAY) राखाडी रंगाची फिकट सावली परिभाषित करते
स्थिर रंग हिरवा (हिरवा) हिरवा रंग परिभाषित करण्यासाठी वापरला जातो
स्थिर रंग किरमिजी (मजेंटा) किरमिजी सावली परिभाषित करते
स्थिर रंग गुलाबी (गुलाबी) जावा मध्ये गुलाबी परिभाषित करते
स्थिर रंग नारिंगी (ऑरेंज) जावा मध्ये केशरी रंग तयार करतो
स्थिर रंग पिवळा (पिवळा) पिवळा परिभाषित करण्यासाठी वापरला जातो
स्थिर रंग लाल (लाल) जावा मध्ये लाल रंग परिभाषित करते

Java मध्ये AWT.Color वापरण्यासाठी सराव समस्या

जावा मधील AWT कलरचा तुमच्याकडे भक्कम पाया आहे असे तुम्हाला वाटते का? चला काही व्यावहारिक समस्या सोडवून या कौशल्यांची चाचणी घेऊ - येथे, तुम्हाला कन्स्ट्रक्टर आणि सामान्य पद्धती, तसेच इतर गैर-रंग-संबंधित Java साधने लागू करावी लागतील. सराव समस्या # 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

निष्कर्ष

अभिनंदन, तुम्ही Java मधील AWT.Color वरील या विस्तृत मार्गदर्शकाद्वारे प्राप्त केले आहे. आता, इंटरफेस हाताळणे खूप सोपे होईल. सराव समस्या आणि कोडजिम प्रश्नमंजुषा सोडवून तुमचे ज्ञान लागू करण्यास विसरू नका. सराव परिपूर्ण बनवते म्हणून नमुना समस्यांना तुमचा सर्वोत्तम शॉट द्या!
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION