Banner Java

Contoh Program Java: Menggunakan Kelas JSlider

Di artikel Mengenal Kelas JSlider Di Pemrograman Java, Anda diperkenalkan pada kelas JSlider. Di artikel kali ini, Anda diberikan contoh program Java tentang menggunakan kelas JSlider. Program akan membuat empat buah obyek kelas JSlider. Obyek slider pertama digunakan untuk pengatur ukuran teks obyek label. Tiga obyek slider berikutnya digunakan untuk mengatur warna teks obyek label. Warna teks tersusun atas warna merah (red), hijau (green) dan biru (blue) atau lebih dikenal dengan RGB. Anda dapat menggunakan knob yang terdapat di obyek slider untuk menentukan ukuran dan warna teks.

// Nama kelas : DemoJSlider.java
// Mendemonstrasikan penggunaan kelas JSlider

// Mengimpor kelas
import java.awt.*;
import java.util.Hashtable;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;

// Deklarasi kelas
public class DemoJSlider extends JFrame {

   JLabel label = new JLabel("Belajar Java", JLabel.CENTER);
   JSlider sldSize = new JSlider(SwingConstants.VERTICAL, 10, 50, 35);
   JSlider sldRed = new JSlider(0, 250, 0);
   JSlider sldGreen = new JSlider(0, 250, 0);
   JSlider sldBlue = new JSlider(0, 250, 0);
   int sizeValue, redValue, greenValue, blueValue;

   // Konstruktor DemoJSlider
   public DemoJSlider() {

      sizeValue = sldSize.getValue();
      redValue = sldRed.getValue();
      greenValue = sldGreen.getValue();
      blueValue = sldBlue.getValue();

      // Mengatur ukuran dan warna sesuai nilai obyek slider awal
      label.setFont(new Font("Tahoma", Font.PLAIN + Font.BOLD, sizeValue));
      label.setForeground(new Color(redValue, greenValue, blueValue));

      // Mengatur obyek sldSize (JSlider)
      Hashtable<Integer, JLabel> tbl1 = new Hashtable<Integer, JLabel> ();
      tbl1.put(10, new JLabel("10"));
      tbl1.put(20, new JLabel("20"));
      tbl1.put(30, new JLabel("30"));
      tbl1.put(40, new JLabel("40"));
      tbl1.put(50, new JLabel("50"));

      sldSize.setPaintLabels(true);
      sldSize.setLabelTable(tbl1);
      sldSize.setMinorTickSpacing(5);
      sldSize.setMajorTickSpacing(10);
      sldSize.setPaintTicks(true);
      sldSize.setBorder(new TitledBorder("Size"));

      JPanel panelLabel = new JPanel();
      panelLabel.setLayout(new BorderLayout());
      panelLabel.add(label, BorderLayout.CENTER);
      panelLabel.add(sldSize, BorderLayout.LINE_END);
      
      // Mengatur obyek sldRed, sldGreen dan sldBlue (JSlider)
      Hashtable<Integer, JLabel> tbl2 = new Hashtable<Integer, JLabel> ();
      tbl2.put(0, new JLabel("0"));
      tbl2.put(50, new JLabel("50"));
      tbl2.put(100, new JLabel("100"));
      tbl2.put(150, new JLabel("150"));
      tbl2.put(200, new JLabel("200"));
      tbl2.put(250, new JLabel("250"));

      sldRed.setPaintLabels(true);
      sldRed.setLabelTable(tbl2);
      sldRed.setMinorTickSpacing(10);
      sldRed.setMajorTickSpacing(50);
      sldRed.setPaintTicks(true);  

      sldGreen.setPaintLabels(true);
      sldGreen.setLabelTable(tbl2);
      sldGreen.setMinorTickSpacing(10);
      sldGreen.setMajorTickSpacing(50);
      sldGreen.setPaintTicks(true);    

      sldBlue.setPaintLabels(true);
      sldBlue.setLabelTable(tbl2);
      sldBlue.setMinorTickSpacing(10);
      sldBlue.setMajorTickSpacing(50);
      sldBlue.setPaintTicks(true);  

      JPanel panelSliderRGB = new JPanel();
      panelSliderRGB.setLayout(new GridLayout(3, 1, 2, 1)); 
      panelSliderRGB.add(sldRed);
      panelSliderRGB.add(sldGreen);
      panelSliderRGB.add(sldBlue);

      JPanel panelLabelRGB = new JPanel();
      panelLabelRGB.setLayout(new GridLayout(3, 1, 2, 1));
      panelLabelRGB.add(new JLabel("RED"));
      panelLabelRGB.add(new JLabel("GREEN"));
      panelLabelRGB.add(new JLabel("BLUE"));

      JPanel panelRGB = new JPanel();
      panelRGB.setLayout(new BorderLayout(3, 3));
      panelRGB.add(panelLabelRGB, BorderLayout.LINE_START);
      panelRGB.add(panelSliderRGB, BorderLayout.CENTER);
      panelRGB.setBorder(new TitledBorder("RGB Color"));

      getContentPane().setLayout(new BorderLayout(0, 1));
      getContentPane().add(panelLabel, BorderLayout.CENTER);
      getContentPane().add(panelRGB, BorderLayout.PAGE_END);

      // Penanganan event pada obyek slider
      sldSize.addChangeListener(
         new ChangeListener() {
            public void stateChanged(ChangeEvent ce) {
               sizeValue = sldSize.getValue();
               label.setFont(new Font("Tahoma", Font.PLAIN + Font.BOLD, sizeValue));
            }
         }
      );

      sldRed.addChangeListener(
         new ChangeListener() {
            public void stateChanged(ChangeEvent ce) {
               redValue = sldRed.getValue();
               label.setForeground(new Color(redValue, greenValue, blueValue));
            }
         }
      );                     
          
      sldGreen.addChangeListener(
         new ChangeListener() {
            public void stateChanged(ChangeEvent ce) {
               greenValue = sldGreen.getValue();
               label.setForeground(new Color(redValue, greenValue, blueValue));
            }
         }
      ); 

      sldBlue.addChangeListener(
         new ChangeListener() {
            public void stateChanged(ChangeEvent ce) {
               blueValue = sldBlue.getValue();
               label.setForeground(new Color(redValue, greenValue, blueValue));
            }
         }
      ); 
   }

   // Metoda main
   public static void main(String[] args) {
      DemoJSlider frame = new DemoJSlider();
      frame.setTitle("Kelas DemoJSlider");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(415, 330);
      frame.setVisible(true);
   }
}

Baris nomor 103 – 110 adalah pernyataan yang dieksekusi ketika nilai obyek slider vertikal (sldSize) dirubah melalui penggeseran knob. Event obyek ini digunakan untuk merubah ukuran teks dengan rentang nilai antara 10 – 50. Saat knob digeser, ukuran teks akan langsung berubah untuk menyesuaikan nilai obyek sldSize saat ini.

Untuk merubah warna teks, Anda menggunakan tiga buah slider horisantal yang telah dikelompokkan oleh titled border RGB Color. Anda dapat merubah warna teks dengan menggeser knob di salah satu atau ketiga obyek slider tersebut (sldRed, sldGreen dan sldBlue). Masing masing obyek slider mempunyai rentang nilai 0 – 250 (rentang nilai masing-masing warna RGB adalah 0 – 255). Warna teks merupakan kombinasi dari tiga buah warna (red, green dan blue). Ketika knob salah satu slider warna dirubah (digeser), warna teks di label langsung mengalami perubahan.

Menggunakan kelas JSlider di Java

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.