Banner Java

Kelas JColorChooser Sebagai Kotak Dialog Pilihan Warna

Di artikel Mengenal Kelas JColorChooser Di Java, Anda diperkenalkan pada materi pemrograman Java tentang kelas JColorChooser. Sebagaimana telah dijelaskan di artikel tersebut, JColorChooser dapat digunakan dengan dua cara yaitu sebagai sebagai kotak dialog yang menampilkan pilihan warna dan sebagai komponen sebagaimana komponen Java lainnya. Di artikel kali ini, Anda akan diberikan contoh program Java kelas JColorChooser yang digunakan sebagai kotak dialog pilihan warna. Ketika salah satu tombol (button) di program ditekan atau diklik, maka kotak dialog pilihan warna muncul. Pengguna aplikasi (user) dapat memilih warna yang diinginkan (merubah warna latar belakang atau warna teks) dan kemudian menekan tombol OK.

// Nama file : DemoJColorChooser.java
// JColorChooser sebagai kotak dialog pilihan warna

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

// Deklarasi kelas
public class DemoJColorChooser extends JFrame {

   Container kontener;
   Color warnaKontenerAwal, warnaKontener;
   Color warnaTeksAwal, warnaTeks;
   JLabel label;
   Font modelHuruf;
   JButton jbtKontener, jbtTeks;
   JPanel panel;
   TitledBorder border;

   // Konstruktor
   public DemoJColorChooser() {

      modelHuruf = new Font("Tahoma", Font.BOLD + Font.ITALIC, 21);
      label = new JLabel("Pemrograman Bahasa Java", JLabel.CENTER);   
      label.setFont(modelHuruf);

      jbtKontener = new JButton("Warna Background");
      jbtTeks = new JButton("Warna Teks");
      border = new TitledBorder("Tombol Rubah Warna");
      panel = new JPanel();
      panel.setBorder(border);
      panel.setLayout(new GridLayout(1, 2));
      panel.add(jbtKontener);
      panel.add(jbtTeks);

      kontener = getContentPane();
      kontener.setLayout(new BorderLayout());
      kontener.add(label, BorderLayout.CENTER);
      kontener.add(panel, BorderLayout.PAGE_END);

      jbtKontener.addActionListener(
         new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
               warnaKontenerAwal = kontener.getBackground();
               warnaKontener = JColorChooser.showDialog(null, "Pilihan Warna",
                               warnaKontenerAwal);
               if(warnaKontener != null)
               kontener.setBackground(warnaKontener);
            }
         }
      );

      jbtTeks.addActionListener(
         new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
               warnaTeksAwal = label.getForeground();
               warnaTeks = JColorChooser.showDialog(null, "Pilihan Warna",
                           warnaTeksAwal);
               if(warnaTeks != null)
               label.setForeground(warnaTeks);
            }
         }
      );
   }

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

Untuk menggunakan kelas JColorChooser sebagai kotak dialog pilihan warna, Anda dapat menggunakan metoda showDialog dari kelas tersebut. Kotak dialog pilihan warna akan bertindak sebagai modal artinya Anda tidak dapat berpindah ke jendela (window) yang lain sebelum kotak dialog tersebut ditutup (dismissed).

Agar kotak dialog pilihan warna bertindak sebagai modal, argumen parameter pertama adalah kelas luar (parent component). Anda dapat mengakses kata kunci acuan this dari kelas luar (outer class) dengan menggunakan NamaKelasLuar.this, misalnya DemoJColorChooser.this. Parent component merupakan acuan ke jendela darimana kotak dialog pilihan warna dimunculkan. Dengan argumen pertama adalah parent component, maka kotak dialog warna akan ditampilkan di tengah jendela dari parent component tersebut. Apabila argumen pertama bernilai null, kotak dialok pilihan warna akan ditampilkan di tengah layar.

Kelas JColorChooser sebagai kotak dialog

Baca artikel terkait lainnya:

  • 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.