CodeGym /Blog Jawa /Acak /Jawa.Awt.Kelas Warna
John Squirrels
tingkat
San Francisco

Jawa.Awt.Kelas Warna

Diterbitake ing grup
Yen sampeyan nguwasani Java Abstract Toolkit, sampeyan kudu sinau aplikasi Java AWT Color Class. Amarga ana akeh konstruktor lan metode sing melu, mula bisa uga medeni. Nanging aja kuwatir, sampeyan wis dijamin :) Kanthi rundown lengkap babagan Java AWT Color, sampeyan bakal sinau carane nggawe jinis warna anyar lan ngatur kanthi cepet. Kita uga bakal nawakake sawetara tes latihan sing bakal mbantu sampeyan ngasah katrampilan.

Apa Kelas Warna AWT ing Jawa?

Tujuan utama AWT Color yaiku ngidini pangembang nggawe warna anyar nggunakake kode Java nggunakake paket RGB (abang, ijo, biru), RGBA (abang, ijo, biru, alpha), utawa HSB (warna, saturasi, komponen BRI). Kelas kasebut ngemot rong nilai - kode iyub-iyub lan nilai opacity / transparansi. Java.Awt.Warna Kelas - 1Mangkene carane sampeyan ngumumake Class java.awt.Color:

public class Color
   extends Object
      implements Paint, Serializable
Kanggo ngumumake macem-macem jinis warna nggunakake Class.java.awt.Color, pangembang nggunakake konstruktor - kita bakal ndeleng saiki.

AWT.Konstruktor Warna ing Jawa

Gumantung ing parameter saka werna sing arep digawe, sampeyan kudu nggunakake jinis tartamtu saka werna konstruktor. Ana sawetara iki - ayo ditliti siji-siji.
  • Color(float r, float g, float b)iku kelas sing digunakake kanggo nemtokake werna ing skema werna RGB sing buram. Sampeyan bisa nemtokake sawetara werna ing ngendi wae antarane 0.0 lan 0.1.
  • Color(float r, float b, float g, float a)iku kelas sing nemtokake werna RGBA (kisaran saka nilai kasedhiya 0,0 lan 0,1).
  • Color(ColorSpace c, float[], co, float a)nemtokake werna ing ColorSpace sing sampeyan nemtokake sadurunge. Pangembang nemtokake sawetara komponen warna ing array float saka alpha sing ditetepake.
  • Color(int, rgb)yaiku kelas nggawe werna RGB (buram). Priksa manawa kanggo mbayar manungsa waé menyang Nilai komponen saka konstruktor - 16-23 kanggo abang, 8-15 kanggo ijo, 0-7 kanggo biru.
  • Color(int r, int g, int b)- cara sing digunakake kanggo nemtokake werna RGB opaque. Nilai warna kudu ana ing antarane 0 lan 255.
  • Color(int r, int g, int b, int a)- nggawe werna ing skema RGBA (0-255).
  • Color(int rgba, boolean b)digunakake kanggo nggawe werna sRGB ing nilai gabungan ditetepake. Rentang nilai kalebu 24-31 kanggo alpha, 16-23 kanggo abang, 8-15 kanggo ijo, lan 0-7 kanggo biru.
Liyane saka iku, class.awt.color beroperasi karo kolom, sing diwarisake saka Java.awt.Transparency:
  • TRANSLUCENTnuduhake manawa warna kasebut ngemot nilai alpha lan duwe rong nilai - 0 lan 1.
  • OPAQUEmenehi nilai alpha 1 kanggo obyek njamin opaqueness lengkap.
  • BITMASKnggantosi opaqueness absolut utawa nilai transparan lan dumunung ing kisaran (0;1) ngendi 0 iku transparan lengkap lan 1 iku opaqueness nemen.

Top 15 Cara Gunakake Kanthi Kelas Warna AWT Jawa

Kanggo ngapusi werna, nyetel pepeteng utawa padhange, pangembang Jawa gumantung ing macem-macem cara. Ana puluhan sing dadi sampeyan ora kudu sinau kabeh kanthi ati. Nanging, nalika nerangake cara Java AWT Color sing paling akeh digunakake, kita nyuda dhaptar nganti limalas. Ngelingi iki tanpa kudu ngrujuk dokumentasi API Java bakal mbiyantu para pangembang.

peteng ()

Cara iki digunakake kanggo nggawe werna anyar sing versi luwih peteng saka werna sing wis ditetepake. Tuladha :

Color.green.darker()
Yen nglamar darker()sapisan ora cukup kanggo nggawe iyub-iyub sing sampeyan butuhake, aja ragu-ragu kanggo nglamar maneh metode kasebut kaping pirang-pirang, kaya sing ditampilake ing ngisor iki:

Color.green.darker().darker().darker().darker().darker()

luwih padhang()

Minangka jeneng tabet, Color brighter()digunakake kanggo Padhangake iyub-iyub sampeyan wis duwe. Kajaba iku darker(), bisa digunakake kaping pirang-pirang saben warna. Tuladha :

Color myColor = Color.RED;          

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

int getAlpha()

Yen sampeyan pengin mbalekake komponen alpha warna sampeyan, gunakake metode iki. Elinga yen nilai alpha dumunung ing kisaran 0-255. Punika conto aplikasi cara lan bali. Tuladha :

alpha = Color.black.getAlpha();
return new Color(components[0], components[1], components[2], alpha);

Warna statis getColor(String nm)

Pangembang Jawa bisa nggunakake cara iki kanggo nemokake werna nggunakake properti sistem. Ana cara liya kanggo ngatasi tujuan sing padha:
  • static Color getColor(String nm, int v)
  • static Color getColor(String nm, Color v)

decode Warna statis (string nm)

Cara iki digunakake nampilake werna minangka senar. Sawise konversi rampung, pangembang bakal entuk warna opaque sing ditetepake. Tuladha :

public static Color decodeColor(String hexColor) {

 return Color.decode(hexColor);

PaintContext createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints)

Cara iki katon rumit nanging luwih gampang dimanipulasi tinimbang sing katon. Paint Context CreateContext()digunakake kanggo nemtokake pola werna padhet sing bola-bali. Tuladha :

 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)

Iki minangka cara Jawa sing bisa ditrapake ing warna kanggo ngasilake array float lan komponen alpha. Cara kasebut ditrapake kanggo diwenehi ColorSpacesing ditetepake dening cspace. Tuladha :

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

return myColor.getComponents(cspace, compArray);

}

ColorSpace getColorSpace()

Pangembang Jawa bisa nggunakake cara iki kanggo ngasilake ruang warna kanggo warna sing dipilih. Cara liya kanggo entuk ruang warna kanggo entri sing diwenehake yaiku nggunakake Arrays.to.String. Iki minangka strategi sing luwih rumit, kaya sing katon ing conto ing ngisor iki: Conto :

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

getHSBColor(float h, float s, float b)

Pangembang Java nggunakake metode iki kanggo nggawe obyek warna anyar adhedhasar nilai model HSB. Tuladha :

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

Cara Jawa iki ngasilake nilai komponen ijo kanggo werna sing digawe. Kabeh nilai pas ing kisaran sing cocog karo ijo ing skema werna RGB. Tuladha :

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

njalukRed()

Kajaba kanggo getGreen(), getRedngasilake nilai kanggo komponen abang saka werna diwenehi. Sampeyan wis weruh carane cara iki ditrapake ing conto ing ndhuwur.

getBlue()

Cara iki ngasilake nilai biru ing kisaran nilai skema warna RGB. Mangkono uga, kanggo conto nggunakake getBlue(), deleng katrangan babagan getGreen().

getAlpha()

Cara getAlpha () digunakake ing Jawa nalika pangembang pengin nemokake nilai alpha saka werna tartamtu. Kajaba kanggo RBG, alpha kabeh warna ana ing kisaran 0-255. Conto : iki carane getAlpha()digunakake minangka bagéan saka loop.

int alpha = color.getAlpha();
	if (alpha != 255)
	{
		setStrokeAlpha(alpha);
		strokeAlphaSet = true;

getTransparency()

Cara iki ngasilake nilai transparan sing sampeyan utawa pangembang liyane wis ditemtokake kanggo werna nalika nggawe. Tuladha :

public int getTransparency() {

return myColor.getTransparency();

boolean equals(Object obj)

Cara iki migunani banget yen sampeyan mbandhingake rong warna. Iki ngidini pangembang Jawa ngerti apa rong obyek warna duwe nilai sing padha. Tuladha :

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));
  }
}

padha (obj obj)

Kajaba iku boolean equals(Object obj), iki minangka metode komparatif. Kita digunakake kanggo nemtokake manawa obyek warna padha karo siji liyane. Tuladha :

Object a = new Object(); Object b = new Object(); return(a.equals(b));

Pandhuan kanggo Werna Utama Digunakake ing Jawa

Saiki sampeyan wis ngerti cara sing digunakake kanggo ngapusi werna ing Jawa, ayo deleng jinis lapangan sing bakal sampeyan gunakake. Iki minangka warna statis sing bisa ditemtokake dening pangembang Jawa. Sampeyan bisa nemtokake werna kanthi ngetik jenenge (priksa manawa sampeyan ngetik persis kaya sing ditulis ing dokumentasi resmi) utawa nemtokake nilai RGB. Ayo goleki pangembang palet sing digunakake:
jeneng lapangan Katrangan
warna statis ireng (BLACK) Nemtokake werna ireng
warna statis putih (PUTIH) Nemtokake werna putih
warna statis biru (BLUE) Digunakake kanggo nemtokake biru
werna abu-abu statis (GRAY) Nemtokake werna abu-abu
werna abu-abu peteng statis (DARK_GRAY) Nemtokake werna abu-abu sing luwih peteng
werna abu-abu statis (LIGHT_GRAY) Nemtokake werna abu-abu sing luwih entheng
warna statis hijau (GREEN) Digunakake kanggo nemtokake werna ijo
Warna magenta statis (MAGENTA) Nemtokake iyub-iyub magenta
Warna statis pink (PINK) Nemtokake jambon ing basa Jawa
Warna oranye statis (ORANGE) Nggawe werna oranye ing Jawa
Warna statis kuning (KUNING) Digunakake kanggo nemtokake kuning
Warna statis abang (RED) Nemtokake werna abang ing basa Jawa

Masalah Laku Kanggo Nggunakake AWT.Color ing Jawa

Apa sampeyan rumangsa duwe dhasar warna AWT ing Jawa? Ayo nyoba katrampilan kasebut kanthi ngrampungake sawetara masalah praktis - ing kene, sampeyan kudu ngetrapake konstruktor lan cara umum, uga alat Java liyane sing ora ana gandhengane karo warna. Praktek masalah #1 . Gawe komponen khusus sing ngidini pangguna program ngapiki tingkat RGB kanthi warna (padha karo RGBColorChooser). Priksa manawa sampeyan kalebu getColor () menyang komponen sampeyan. Nggawe komponen minangka subkelas Panel, dudu applet. Wangsulan : Bab ingkang utama yaiku masalah sing cukup rumit - ayo dipérang dadi langkah-langkah sing bisa diatur:
  1. Ngonversi RGBChoosermenyang komponen.
  2. Tambah rutin anyar kanggo komponen - getColor().
  3. Tambah setColor()kanggo nyetel werna.
Iki kode conto sing kudu sampeyan entuk ing mburi dina:

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

Kesimpulan

Sugeng, sampeyan wis entuk pandhuan lengkap babagan AWT.Color ing Jawa. Saiki, nangani antarmuka bakal luwih gampang. Aja lali ngetrapake kawruh kanthi ngrampungake masalah latihan lan kuis CodeGym. Laku nggawe sampurna supaya menehi conto masalah sing paling apik!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION