Menggunakan spinner model SpinnerNumberModel di program Java
Menggunakan Spinner Model SpinnerNumberModel Di Java
Kelas SpinnerNumberModel adalah salah satu spinner model yang digunakan untuk menampilkan nilai numerik. Nilai numerik yang dihasilkan kelas ini adalah salah satu dari tipe Byte, Short, Integer, Long, Float atau Double. Tabel di bawah ini merupakan daftar kontruktor kelas SpinnerNumberModel untuk mengkonstruksi obyek kelas SpinnerNumberModel.

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);
   }
}

Menggunakan spinner model kelas SpinnerNumberModel

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.

SILAHKAN BAGIKAN ARTIKEL INI!
Pin It

Produk Laris Toko Gerzal

Edifier R1700BT Active 2.0 Bluetooth Bookshelf Speaker Set

Edifier R1700BT Active 2.0 Bluetooth Bookshelf Speaker Set

Beli di Shopee
Sunbuck AV-555BT Audio Amplifier Bluetooth 5.0 Microphone HiFi

Sunbuck AV-555BT Audio Amplifier Bluetooth 5.0 Microphone HiFi

Beli di Shopee
QUEED Power Supply Station Generator 220V 69800mAh

QUEED Power Supply Station Generator 220V 69800mAh

Beli di Shopee
Fosi Audio V3 Power Amplifier 2 Channel Audio Stereo Hi-Fi TI TPA3255

Fosi Audio V3 Power Amplifier 2 Channel Audio Stereo Hi-Fi

Beli di Shopee
Fosi Audio MC101 Mini Bluetooth Stereo Amplifier With VU Meter

Fosi Audio MC101 Mini Bluetooth Stereo Amplifier With VU Meter

Beli di Shopee