Kelas SpinnerListModel digunakan untuk menampilkan rangkaian nilai string di obyek spinner, misalnya nama hari, bulan, jenjang pendidikan dan sebagainya. Nilai string di obyek kelas SpinnerListModel disimpan di kelas java.util.List. Artikel ini tidak membahas kelas java.util.List. Anda dapat memperoleh penjelasan kelas ini dari internet. Tabel di bawah ini adalah daftar kontruktor kelas SpinnerListModel untuk mengkonstruksi obyek SpinnerListModel.
Tabel konstruktor kelas JSpinnerListModel
Konstruktor | Keterangan |
---|---|
SpinnerListModel() | Mengkonstruksi obyek SpinnerListModel dengan nilai berupa string kosong. |
SpinnerListModel(List value) | Mengkonstruksi obyek SpinnerListModel dengan nilai string yang tersimpan di list. |
SpinnerListModel(Object[] value) | Mengkonstruksi obyek SpinnerListModel dengan nilai string yang tersimpan di larik. |
Contoh program berikut ini mendemonstrasikan bagaimana cara untuk membuat obyek spinner yang menampilkan obyek string warna. Spinner dapat memicu change event ketika salah satu dari dua anak panah kecil diklik untuk menavigasi nilai spinner. Ketika nilai obyek spinner berubah, warna latar (background) dari obyek panel akan berubah menyesuaikan nilai string warna yang ditampilkan obyek spinner.
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 60 61 62 63 64 65 66 67 | // Nama file : DemoSpinnerListModel.java // Mendemonstrasikan penggunaan kelas SpinnerListModel // Mengimpor kelas import java.awt.*; import javax.swing.*; import javax.swing.event.*; public class DemoSpinnerListModel extends JFrame { private JSpinner spinner; private SpinnerModel spinnerListModel; private JPanel panel; public DemoSpinnerListModel() { // Membuat larik warna String[] warna = {"Yellow", "Magenta", "Green", "Cyan", "Orange", "Blue", "Pink", "Red", "Black"}; // Membuat spinner dengan nilai yang tersimpan di list spinnerListModel = new SpinnerListModel(warna); spinner = new JSpinner(spinnerListModel); // Merubah warna panel menyesuaikan nilai spinner awal panel = new JPanel(); spinner.setValue(new String("Yellow")); panel.setBackground(Color.YELLOW); getContentPane().add(spinner, BorderLayout.PAGE_START); getContentPane().add(panel, BorderLayout.CENTER); // Menangani event yang dipicu obyek spinner spinner.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent ce) { String strWarna = (String) spinner.getValue(); if (strWarna == "Yellow") panel.setBackground(Color.YELLOW); else if (strWarna == "Magenta") panel.setBackground(Color.MAGENTA); else if (strWarna == "Green") panel.setBackground(Color.GREEN); else if (strWarna == "Cyan") panel.setBackground(Color.CYAN); else if (strWarna == "Orange") panel.setBackground(Color.ORANGE); else if (strWarna == "Blue") panel.setBackground(Color.BLUE); else if (strWarna == "Pink") panel.setBackground(Color.PINK); else if (strWarna == "Red") panel.setBackground(Color.RED); else panel.setBackground(Color.BLACK); } }); } public static void main(String[] args) { DemoSpinnerListModel frame = new DemoSpinnerListModel(); frame.setTitle("Kelas DemoSpinnerListModel"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(280, 150); frame.setVisible(true); } } |
Baris nomor 18 adalah pernyataan untuk mendeklarasikan larik warna yang mempunyai sembilan nilai string yang mewakili nama warna berbeda. Obyek larik warna dijadikan sebagai argumen parameter konstruktor kelas SpinnerListModel. Obyek spinner list model yang telah dikonstruksi digunakan sebagai argumen parameter konstruktor kelas JSpinner yang menampilkan daftar nama warna (baris nomor 22 dan 23).
Baris nomor 27 adalah pernyataan menentukan warna yang akan ditampilkan spinner pertama kali. Anda dapat menggunakan metoda setValue kelas JSpinner. Karena metoda ini mempunyai parameter tipe kelas Object, maka argumen yang diberikan harus dalam bentuk obyek. Anda tentu ingat bahwa string adalah juga kelas Java. Kelas juga dijadikan sebagai tipe variabel yang disebut tipe acuan, termasuk adalah kelas String. Nilai string warna yang ditampilkan digunakan sebagai acuan menentukan warna latar dari obyek panel yang sebelumnya dikonstruksi dengan memberi argumen berupa konstanta warna yang bersesuaian di metoda setBackground.
Blok pernyataan baris nomor 34 – 57 digunakan untuk menangani change event yang dipicu ketika salah satu dari dua anak panah di obyek spinner diklik untuk mengubah nilai string yang ditampilkan. Anda dapat menggunakan metoda getValue kelas JSpinner untuk mendapatkan nilai yang ditampilkan. Karena hasil pengembalian metoda getValue adalaah tipe kelas Obyek, maka nilai tersebut harus dikonversi ke bentuk string sebelum disimpan di variabel strWarna. Nilai string yang tersimpan di variabel strString digunakan sebagai acuan untuk mengubah warna latar obyek panel di penyeleksian if else.