Di contoh program Java kali ini, obyek kelas JColorChooser merupakan komponen yang diletakkan di obyek kelas Container yaitu obyek dari metoda getContentPane kelas JFrame atau JApplet. Berikut ini adalah kode program kelas JColorChooser yang digunakan sebagai komponen:
Baca artikel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | // 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); } } |
Kelas JColorChooser digunakan sebagai komponen dan diletakkan di obyek content pane kelas JFrame. Baris nomor 31 adalah pernyataan 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.
Baca artikel Pengantar Pemrograman Grafis Java: Kelas Color
Ketika sebuah warna diklik, change event dipicu. Change event ini tidak dipicu oleh obyek color chooser, melainkan oleh obyek ColorSelectionModel (variabel acuan model) yaitu data model yang menangani pemilihan warna. Data model ini dihasilkan oleh metoda getSelectionModel dari kelas JColorChooser.
Baca artikel Mengatur Letak Komponen Menggunakan Kelas BorderLayout Di java
Obyek sumber (model) kemudian meregistrasi obyek pendengar event (anonymous inner class) menggunakan metoda registrasi addChangeListener (baris nomor 41). Di anonymous inner class, metoda stateChanged dideklarasikan di baris nomor 43. Metoda ini akan dieksekusi ketika warna di obyek color chooser diklik.
Di blok metoda ini, pernyataan baris nomor 44 digunakan untuk memperoleh warna dari 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).