Banner Java

Menggunakan Kelas JColorChooser Sebagai Komponen

Di artikel Mengenal Kelas JColorChooser Di Java, Anda akan diperkenalkan pada materi pemrograman Java tentang kelas JColorChooser dan di artikel Kelas JColorChooser Sebagai Kotak Dialog Pilihan Warna, Anda disajikan contoh program Java menggunakan kelas JColorChooser sebagai kotak dialog pilihan warna. Selain digunakan sebagai kotak dialog pilihan warna, kelas JColorChooser digunakan pula sebagai komponen yang dapat diletakkan di dalam kelas-kelas wadah seperti JFrame, JPanel, JApplet, Container dan sebagainya. Di contoh kali ini, obyek kelas JColorChooser merupakan komponen yang diletakkan di obyek kelas Container (obyek dari metoda getContentPane kelas JFrame atau JApplet). Berikut ini adalah contoh kode program kelas JColorChooser yang bertindak sebagai komponen.

// Nama file : DemoJColorChooser2.java
// JColorChooser sebagai komponen

// Mengimpor kelas
import java.awt.*;
import javax.swing.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.colorchooser.ColorSelectionModel;

// Mendeklarasikan kelas
public class DemoJColorChooser2 extends JFrame {

   private JLabel label;
   private Font font;
   private JColorChooser colorChooser;
   private TitledBorder border;
   private Color cForeground, newCForeground;
   private ColorSelectionModel model;
   private Container container;
   
   // Konstruktor kelas DemoJColorChooser2
   public DemoJColorChooser2() {

      font = new Font("Tahoma", Font.BOLD + Font.ITALIC, 22);
      label = new JLabel("Java Mudah Dipelajari", JLabel.CENTER);
      label.setFont(font);
      cForeground = label.getForeground();

      border = new TitledBorder("Pilihan Warna Teks");
      colorChooser = new JColorChooser(cForeground);
      colorChooser.setBorder(border);
      model = colorChooser.getSelectionModel();

      container = getContentPane();
      container.setBackground(Color.WHITE);
      container.setLayout(new BorderLayout());
      container.add(label, BorderLayout.PAGE_START);
      container.add(colorChooser, BorderLayout.CENTER);    

      model.addChangeListener(
         new ChangeListener() {
            public void stateChanged(ChangeEvent ce) {
               newCForeground = colorChooser.getColor();
               label.setForeground(newCForeground);
            }
         }
      );
   }

   // Metoda main
   public static void main(String[] args) {
      DemoJColorChooser2 frame = new DemoJColorChooser2();
      frame.setTitle("Kelas DemoJColorChooser");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(370, 350);
      frame.setVisible(true);
   }
}

Dari contoh program di atas, kelas JColorChooser digunakan sebagai komponen dan diletakkan di obyek content pane dari frame (kelas JFrame). Baris nomor 31 adalah pernyataan untuk membuat obyek color chooser. Argumen kontruktor kelas ini adalah variabel acuan cForeground yang mengacu ke obyek warna dan digunakan oleh obyek color chooser sebagai warna awal yang terpilih.

Ketika sebuah warna dipilih atau diklik ulang, change event akan dipicu. Change event itu sendiri tidak dipicu oleh obyek color chooser, melainkan oleh obyek ColorSelectionModel (variabel acuan model) yaitu data model yang menangani pemilihan warna. Data model ini dapat dihasilkan oleh metoda getSelectionModel dari kelas JColorChooser. Obyek sumber (model) kemudian meregistrasi obyek pendengar event (anonymous inner class) menggunakan metoda registrasi addChangeListener (baris nomor 41).

Di dalam anonymous inner class, metoda stateChanged dideklarasikan (baris nomor 43). Metoda ini akan dieksekusi ketika warna di obyek color chooser dipilih atau diklik. Di blok metoda ini, pernyataan baris nomor 44 digunakan untuk memperoleh warna yang telah dipilih di obyek color chooser dan kemudian menyimpannya di variabel newCForeground. Warna yang tersimpan di variabel newCForeground kemudian digunakan untuk mengatur ulang warna teks atau string di obyek label (pernyataan baris nomor 45).

Menggunakan kelas JColorChooser sebagai komponen

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.