CodeGym /Java Blog /Acak /Kelas Java.Awt.Color
John Squirrels
Level 41
San Francisco

Kelas Java.Awt.Color

Dipublikasikan di grup Acak
Jika Anda menguasai Java Abstract Toolkit, Anda harus mempelajari aplikasi Java AWT Color Class. Karena ada banyak konstruktor dan metode yang terlibat, ini mungkin terasa menakutkan pada awalnya. Tapi jangan khawatir, kami membantu Anda :) Dengan ikhtisar lengkap tentang Java AWT Color ini, Anda akan belajar cara membuat jenis warna baru dan mengelolanya dalam waktu singkat. Kami juga akan menawarkan beberapa tes latihan yang akan membantu Anda mengasah keterampilan Anda.

Apa itu Kelas Warna AWT di Jawa?

Tujuan utama dari AWT Color adalah untuk memungkinkan pengembang membuat warna baru menggunakan kode Java menggunakan paket RGB (red, green, blue), RGBA (red, green, blue, alpha), atau HSB (hue, saturation, BRI). Kelas berisi dua nilai - kode bayangan dan nilai opasitas/transparansi. Kelas Java.Awt.Warna - 1Inilah cara Anda mendeklarasikan Kelas java.awt.Color:

public class Color
   extends Object
      implements Paint, Serializable
Untuk mendeklarasikan berbagai jenis warna menggunakan Class.java.awt.Color, pengembang menggunakan konstruktor - kita akan melihatnya sekarang.

Konstruktor AWT.Color di Jawa

Bergantung pada parameter warna yang ingin Anda buat, Anda harus menggunakan jenis konstruktor warna tertentu. Ada beberapa di antaranya - mari kita periksa satu per satu.
  • Color(float r, float g, float b)adalah kelas yang Anda gunakan untuk menentukan warna dalam skema warna RGB yang buram. Anda dapat menentukan rentang warna antara 0,0 dan 0,1.
  • Color(float r, float b, float g, float a)adalah kelas yang mendefinisikan warna RGBA (kisaran nilai yang tersedia adalah 0,0 dan 0,1).
  • Color(ColorSpace c, float[], co, float a)menentukan warna di ColorSpace yang Anda tentukan sebelumnya. Pengembang menentukan rentang komponen warna dalam array float dari alfa yang ditentukan.
  • Color(int, rgb)adalah kelas yang membuat warna RGB (buram). Pastikan untuk memperhatikan nilai komponen konstruktor - 16-23 untuk merah, 8-15 untuk hijau, 0-7 untuk biru.
  • Color(int r, int g, int b)- metode yang digunakan untuk menentukan warna RGB buram. Nilai warna harus berada di antara 0 dan 255.
  • Color(int r, int g, int b, int a)- menciptakan warna dalam skema RGBA (0-255).
  • Color(int rgba, boolean b)digunakan untuk membuat warna sRGB dalam nilai gabungan yang ditentukan. Kisaran nilai mencakup 24-31 untuk alfa, 16-23 untuk merah, 8-15 untuk hijau, dan 0-7 untuk biru.
Selain itu, class.awt.color beroperasi dengan bidang-bidang yang diwarisi dari Java.awt.Transparency:
  • TRANSLUCENTmewakili apakah warna mengandung nilai alfa atau tidak dan memiliki dua nilai - 0 dan 1.
  • OPAQUEmemberikan nilai alfa 1 ke objek yang menjamin keburaman totalnya.
  • BITMASKmewakili nilai keburaman atau transparansi mutlak dan berada dalam kisaran (0;1) di mana 0 adalah transparansi penuh dan 1 adalah keburaman ekstrim.

15 Metode Teratas untuk Digunakan Dengan Kelas Warna Java AWT

Untuk memanipulasi warna, menyesuaikan kegelapan atau kecerahannya, pengembang Java mengandalkan metode yang berbeda. Ada lusinan sehingga Anda tidak perlu mempelajari semuanya dengan hati. Namun, untuk metode Java AWT Color yang paling banyak digunakan, kami mempersempit daftar menjadi lima belas. Mengingat ini tanpa harus mereferensikan dokumentasi Java API akan sangat membantu pengembang.

lebih gelap()

Metode ini digunakan untuk membuat warna baru yang merupakan versi lebih gelap dari warna yang telah Anda tetapkan. Contoh :

Color.green.darker()
Jika menerapkan darker()sekali saja tidak cukup untuk membuat warna yang Anda butuhkan, jangan ragu untuk menerapkan kembali metode ini sebanyak yang Anda mau, seperti yang ditunjukkan di bawah ini:

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

lebih terang()

Seperti namanya, Color brighter()digunakan untuk mencerahkan warna yang sudah Anda miliki. Demikian pula dengan darker(), itu bisa digunakan beberapa kali per satu warna. Contoh :

Color myColor = Color.RED;          

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

int getAlpha()

Jika Anda ingin mengembalikan komponen alfa warna Anda, gunakan metode ini. Ingatlah bahwa nilai alfa berada dalam kisaran 0-255. Berikut adalah contoh penerapan dan pengembalian metode. Contoh :

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

getColor Warna statis (String nm)

Pengembang Java dapat menggunakan metode ini untuk menemukan warna menggunakan properti sistem. Ada metode lain yang menangani tujuan serupa:
  • static Color getColor(String nm, int v)
  • static Color getColor(String nm, Color v)

Dekode warna statis (string nm)

Metode ini digunakan menampilkan warna sebagai string. Setelah konversi selesai, pengembang akan mendapatkan warna buram yang ditentukan. Contoh :

public static Color decodeColor(String hexColor) {

 return Color.decode(hexColor);

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

Metode ini terlihat rumit tetapi lebih mudah untuk dimanipulasi daripada yang terlihat. Paint Context CreateContext()digunakan untuk menentukan pola warna solid berulang. Contoh :

 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)

Ini adalah metode Java yang dapat Anda terapkan pada warna untuk mengembalikan array float dan komponen alfa. Metode ini berlaku untuk yang ColorSpaceditentukan oleh cspace. Contoh :

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

return myColor.getComponents(cspace, compArray);

}

ColorSpace getColorSpace()

Pengembang Java dapat menggunakan metode ini untuk mengembalikan ruang warna untuk warna yang dipilih. Cara lain untuk mendapatkan ruang warna untuk entri tertentu adalah dengan menerapkan Arrays.to.String. Ini adalah strategi yang lebih kompleks, seperti terlihat pada contoh di bawah ini: Contoh :

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)

Pengembang Java menerapkan metode ini untuk membuat objek warna baru berdasarkan nilai model HSB. Contoh :

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

Metode Java ini mengembalikan nilai komponen hijau untuk warna yang Anda buat. Semua nilai sesuai dengan rentang yang sesuai dengan warna hijau dalam skema warna RGB. Contoh :

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

getRed()

Sama halnya dengan getGreen(), getRedmengembalikan nilai untuk komponen merah dari warna yang diberikan. Anda telah melihat bagaimana metode diterapkan pada contoh di atas.

getBlue()

Metode ini mengembalikan nilai biru dalam rentang nilai skema warna RGB. Demikian juga untuk contoh penggunaan getBlue(), lihat keterangan getGreen().

getAlpha()

Metode getAlpha() digunakan di Java saat pengembang ingin menemukan nilai alfa dari warna yang diberikan. Mirip dengan RBG, alfa dari semua warna berada dalam kisaran 0-255. Contoh : inilah cara getAlpha()digunakan sebagai bagian dari sebuah loop.

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

getTransparency()

Metode ini mengembalikan nilai transparansi yang Anda atau pengembang lain tentukan untuk warna saat membuatnya. Contoh :

public int getTransparency() {

return myColor.getTransparency();

boolean sama dengan (Objek objek)

Metode ini sangat berguna jika Anda membandingkan dua warna satu sama lain. Ini memungkinkan pengembang Java mengetahui apakah dua objek warna memiliki nilai yang sama. Contoh :

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

sama dengan(Objek objek)

Mirip dengan boolean equals(Object obj), yang satu ini adalah metode komparatif. Kami menggunakannya untuk menentukan apakah objek warna sama satu sama lain. Contoh :

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

Panduan untuk Warna Utama yang Digunakan di Java

Sekarang setelah Anda memahami metode yang digunakan untuk memanipulasi warna di Java, mari kita lihat jenis bidang yang akan Anda kerjakan. Ini adalah warna statis aktual yang dapat ditentukan oleh pengembang Java. Anda dapat menentukan warna dengan memasukkan namanya (pastikan Anda memasukkannya persis seperti yang tertulis dalam dokumentasi resmi) atau menentukan nilai RGB-nya. Mari kita lihat palet yang digunakan pengembang:
Nama bidang Keterangan
warna statis hitam (HITAM) Mendefinisikan warna hitam
warna statis putih (PUTIH) Mendefinisikan warna putih
warna statis biru (BIRU) Digunakan untuk mendefinisikan biru
warna abu-abu statis (ABU-ABU) Menentukan warna abu-abu
warna statis darkgray (DARK_GRAY) Mendefinisikan warna abu-abu yang lebih gelap
warna statis lightGray (LIGHT_GRAY) Mendefinisikan warna abu-abu yang lebih terang
warna statis hijau (HIJAU) Digunakan untuk menentukan warna hijau
Magenta warna statis (MAGENTA) Menentukan warna magenta
statis Warna pink (PINK) Mendefinisikan pink di Jawa
statis Warna oranye (ORANGE) Menciptakan warna oranye di Jawa
Warna statis kuning (KUNING) Digunakan untuk mendefinisikan kuning
statis Warna merah (MERAH) Mendefinisikan warna merah di Jawa

Latihan Soal Untuk Menggunakan AWT.Color di Java

Apakah Anda merasa memiliki dasar yang kuat tentang AWT Color di Jawa? Mari uji keterampilan ini dengan menyelesaikan beberapa masalah praktis - di sini, Anda harus menerapkan konstruktor dan metode umum, serta alat Java lain yang tidak terkait warna. Soal latihan #1 . Buat komponen khusus yang memungkinkan pengguna program menyesuaikan level RGB dalam warna (mirip dengan RGBColorChooser). Pastikan untuk menyertakan getColor() ke dalam komponen Anda. Jadikan komponen sebagai subkelas Panel, bukan applet. Jawaban : ini adalah masalah yang cukup rumit - mari kita pecahkan menjadi langkah-langkah yang dapat dikelola:
  1. Ubah an RGBChoosermenjadi komponen.
  2. Tambahkan rutin baru ke komponen - getColor().
  3. Tambahkan setColor()untuk mengatur warna.
Berikut contoh kode yang harus Anda dapatkan di penghujung hari:

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

Selamat, Anda telah membaca panduan ekstensif tentang AWT.Color di Java ini. Sekarang, menangani antarmuka akan jauh lebih mudah. Jangan lupa untuk menerapkan pengetahuan Anda dengan menyelesaikan soal latihan dan kuis CodeGym. Latihan menjadi sempurna, jadi berikan contoh soal yang terbaik!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION