Tabel konstruktor kelas JSpinnerNumberModel
Konstruktor | Keterangan |
---|---|
SpinnerNumberModel() | Mengkonstruksi obyek SpinnerNumberModel yang mempunyai nilai tidak terbatas dengan tampilan nilai awal nol serta nilai kenaikan dan penurunan sebesar satu. |
SpinnerNumberModel(int value, int minimum, int maximum, int stepSize) | Mengkonstruksi obyek SpinnerNumberModel yang menampilkan data integer dengan tampilan nilai awal, batasan minimum dan maksimum serta nilai kenaikan dan penurunan ditentukan. |
SpinnerNumberModel(double value, double minimum, double maximum, double stepSize) | Mengkonstruksi obyek SpinnerNumberModel yang menampilkan data double dengan tampilan nilai awal, batasan minimum dan maksimum serta nilai kenaikan dan penurunan ditentukan. |
SpinnerNumberModel(number value, comparable minimum, comparable maximum, number stepSize) | Mengkonstruksi obyek SpinnerNumberModel yang mewakili rangkaian angka tertutup dari minimum ke maksimum. |
Contoh program berikut ini mendemonstrasikan bagaimana membuat tiga obyek spinner yang menghasilkan nilai integer. Nilai integer dari ketiga obyek spinner ini digunakan sebagai argumen parameter dari konstruktor kelas Color. Konstruktor dari kelas Color yang mempunyai tiga parameter tipe integer (RGB color) berasal dari tiga obyek spinner yang kemudian digunakan untuk merubah warna latar belakang dari obyek panel.
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | // Nama file : DemoSpinnerNumberModel.java // Mendemonstrasikan penggunaan kelas SpinnerNumberModel // Mengimpor kelas import java.awt.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; // Deklarasi kelas public class DemoSpinnerNumberModel extends JFrame { // Deklarasi Variabel private JSpinner spnRed, spnGreen, spnBlue; private SpinnerNumberModel spnNumberRed, spnNumberGreen, spnNumberBlue; private int intRed, intGreen, intBlue; private JPanel panel, panel2; // Konstruktor tanpa argumen public DemoSpinnerNumberModel() { // Membuat obyek spinner dan panel spnNumberRed = new SpinnerNumberModel(255, 0, 255, 1); spnRed = new JSpinner(spnNumberRed); spnNumberGreen = new SpinnerNumberModel(175, 0, 255, 1); spnGreen = new JSpinner(spnNumberGreen); spnNumberBlue = new SpinnerNumberModel(175, 0, 255, 1); spnBlue = new JSpinner(spnNumberBlue); panel = new JPanel(); // Menampilkan warna awal jingga tua (Color(255, 175, 175)) pada obyek panel intRed = (Integer) spnRed.getValue(); intGreen = (Integer) spnGreen.getValue(); intBlue = (Integer) spnBlue.getValue(); panel.setBackground(new Color(intRed, intGreen, intBlue)); panel2 = new JPanel(); panel2.setLayout(new GridLayout(3, 2)); panel2.add(new JLabel(" RGB Color | Red")); panel2.add(spnRed); panel2.add(new JLabel(" RGB Color | Green")); panel2.add(spnGreen); panel2.add(new JLabel(" RGB Color | Blue")); panel2.add(spnBlue); panel2.setBorder(new TitledBorder("RGB Spinners")); getContentPane().add(panel2, BorderLayout.PAGE_START); getContentPane().add(panel, BorderLayout.CENTER); spnRed.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent ce) { changePanelBackground(); } }); spnGreen.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent ce) { changePanelBackground(); } }); spnBlue.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent ce) { changePanelBackground(); } }); } // Merubah warna panel menyesuaikan nilai-nilai spinner private void changePanelBackground() { intRed = (Integer) spnRed.getValue(); intGreen = (Integer) spnGreen.getValue(); intBlue = (Integer) spnBlue.getValue(); panel.setBackground(new Color(intRed, intGreen, intBlue)); } // Metoda main public static void main(String[] args) { DemoSpinnerNumberModel frame = new DemoSpinnerNumberModel(); frame.setTitle("Kelas DemoSpinnerNumberModel"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(307, 185); frame.setVisible(true); } } |
Pernyataan baris nomor 23 dan 24 digunakan membuat obyek spinner spnRed yang menampilkan nilai integer dengan rentang 0 – 255 dan nilai awal yang ditampilkan adalah 255. Pernyataan baris nomor 26, 27 dan 29, 30 digunakan untuk membuat obyek spinner spnGreen dan spnBlue. Dua obyek spinner ini juga mempunyai rentang nilai sama, hanya saja nilai awal yang ditampilkan adalah 175. Baris nomor 32 adalah pernyataan untuk mengkonstruksi obyek panel. Warna background obyek panel ini akan berubah tergantung nilai integer yang tersimpan di ketiga obyek spinner.
Baris nomor 35 – 38 adalah pernyataan merubah warna obyek panel saat program pertama kali ditampilkan. Pertama-tama, nilai ketiga obyek panel diambil dan kemudian disimpan di variabel integer intRed, intGreen dan intBlue. Karena nilai yang dikembalikan oleh metoda getValue adalah dari tipe kelas Object, Anda perlu mengkonversi ke tipe integer. Ketiga nilai integer hasil konversi tersebut digunakan sebagai argumen parameter saat mengkonstruksi obyek kelas Color. Obyek kelas Color kemudian digunakan sebagai argumen parameter metoda setBackground.
Blok pernyataan baris nomor 53 – 57, 59 – 63 dan 65 – 69 digunakan untuk menangani change event yang dipicu oleh ketiga obyek spnRed, spnGreen dan spnBlue. Masing-masing blok penanganan event ini akan memanggil metoda changePanelBackground. Metoda changePanelBackground akan dipanggil bila nilai salah satu ketiga obyek panel berubah. Penjelasan setiap pernyataan yang ada di blok metoda tersebut serupa dengan penjelasan yang diberikan di pernyataan baris nomor 35 – 38.