JSpinner merupakan turunan dari kelas JComponent dengan tampilan berupa kotak teks dan sepasang tombol panah kecil di sisi sebelah kanan. JSpinner memiliki dua konstruktor dan beberapa metoda penting. Berikut ini adalah tabel daftar konstruktor dan beberapa metoda penting dari kelas JSpinner:
Tabel konstruktor kelas JSpinner
Konstruktor | Keterangan |
---|---|
JSpinner() | Mengkonstruksi obyek spinner dengan model SpinnerNumberModel dengan nilai awal 0 tanpa batasan minimum dan maksimum. |
JSpinner(SpinnerModel model) | Mengkonstruksi obyek spinner dengan menentukan SpinnerModel |
Tabel metoda kelas JSpinner
Metoda | Keterangan |
---|---|
addChangeListener(ChangeListener listener) | Menambahkan listener untuk perubahan nilai. |
getValue() | Mengembalikan obyek berupa nilai elemen dari obyek spinner saat ini. |
getNextValue() | Mengembalikan objek berupa nilai elemen berikutnya dari obyek spinner. |
getPreviousValue() | Mengembalikan obyek berupa nilai elemen sebelumnya dari obyek spinner. |
setValue(Object value) | Mengatur ulang nilai elemen saat ini. |
setEditor(JComponent editor) | Menentukan ulang editor yang menampilkan nilai saat ini dari SpinnerModel. |
setModel(SpinnerModel model) | Menentukan ulang model yang mewakili nilai obyek spinner. |
Contoh program berikut ini mendemonstrasikan bagaimana membuat obyek spinner serta menampilkan nilai sebelumnya (previous value), nilai saat ini (current value) dan nilai berikutnya (next value). Pengguna aplikasi (user) juga dapat menavigasi nilai yang sedang ditampilkan dengan mengklik salah satu dari dua anak panah kecil yang berada di posisi sebelah kanan.
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 | // Nama file : DemoSpinner.java // Mendemonstrasikan bagaimana membuat obyek spinner // Mengimpor kelas import java.awt.*; import javax.swing.*; import javax.swing.event.*; // Deklarasi kelas public class DemoSpinner extends JFrame { private JLabel lblPrev = new JLabel("", JLabel.LEFT); private JLabel lblCurrent = new JLabel("", JLabel.LEFT); private JLabel lblNext = new JLabel("", JLabel.LEFT); private JSpinner spinner = new JSpinner(); // Konstruktor tanpa argumen public DemoSpinner() { // Mengelompokkan label JPanel panel = new JPanel(); panel.setLayout(new GridLayout(3, 1)); panel.add(lblPrev); panel.add(lblCurrent); panel.add(lblNext); // Menampilkan nilai spinner awal lblPrev.setText("Nilai sebelumnya : " + spinner.getPreviousValue()); lblCurrent.setText("Nilai saat ini : " + spinner.getValue()); lblNext.setText("Nilai berikutnya : " + spinner.getNextValue()); // Penanganan event spinner spinner.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent ce) { lblPrev.setText("Nilai sebelumnya : " + spinner.getPreviousValue()); lblCurrent.setText("Nilai saat ini : " + spinner.getValue()); lblNext.setText("Nilai berikutnya : " + spinner.getNextValue()); } }); getContentPane().add(spinner, BorderLayout.PAGE_START); getContentPane().add(panel, BorderLayout.CENTER); } // Metoda Main public static void main(String[] args) { DemoSpinner frame = new DemoSpinner(); frame.setTitle("Kelas DemoSpinner"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(220, 125); frame.setVisible(true); } } |
Baris nomor 15 adalah pernyataan untuk mengkonstruksi obyek spinner menggunakan konstruktor tanpa argumen pada tabel konstruktor di atas. Dengan konstruktor ini, secara default, obyek spinner akan menampilkan nilai integer dengan nilai awal adalah 0 dan tanpa batasan nilai minimum maupun maksimum. Untuk menampilkan nilai sebelumnya, saat ini dan sesudahnya, digunakan metoda getPreviousValue, getValue dan getNextValue.