Di artikel Mengenal Kelas JSplitPane Di Pemrograman Java, Anda diperkenalkan pada kelas Java JSplitPane beserta tabel daftar konstruktor dan metoda yang sering digunakan. Di artikel kali ini, Anda diberikan contoh program Java sederhana terkait penggunaan kelas JSplitPane. Di contoh program ini, komponen yang terletak di sebelah kiri terdiri dari obyek label (kelas JLabel) dan obyek text field (kelas JTextField) yang disusun terlebih dulu di obyek panel (kelas JPanel).

Komponen sebelah kanan adalah obyek tombol (button) kelas JButton untuk menampilkan warna, sedangkan komponen paling bawah adalah obyek tombol kelas JButton berlabel yang bisa memicu action event untuk menghasilkan susunan warna RGB baru. Setiap kali tombol ini diklik, warna baru akan ditampilkan tergantung tiga nilai random yang terletak di obyek-obyek text field.

// Nama file : DemoSplitPane.java
// Menggunakan split pane di aplikasi warna sederhana

// mengimpor kelas
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

//Deklarasi kelas
public class DemoSplitPane extends JFrame {

   private JTextField redField, greenField, blueField;
   private JLabel redLabel, greenLabel, blueLabel;
   private JButton btnColor, btnChangeColor;
   private JSplitPane horSplitPane, verSplitPane;

   // Data field ini mempunyai default value masing-masing 0
   private int redValue, greenValue, blueValue;

   // Kontruktor DemoSplitPane
   public DemoSplitPane() {
   
      Font font = new Font("Tahoma", Font.PLAIN + Font.BOLD, 12);
      redField = new JTextField("" + redValue, 6);
      redField.setHorizontalAlignment(JTextField.RIGHT);
      redField.setEditable(false);
      redField.setFont(font);
      greenField = new JTextField("" + greenValue, 6);
      greenField.setHorizontalAlignment(JTextField.RIGHT);
      greenField.setEditable(false);
      greenField.setFont(font);
      blueField = new JTextField("" + blueValue, 6);
      blueField.setHorizontalAlignment(JTextField.RIGHT);
      blueField.setEditable(false);
      blueField.setFont(font);

      redLabel = new JLabel("RED");
      greenLabel = new JLabel("GREEN");
      blueLabel = new JLabel("BLUE");

      // Meletakkan text field dan label ke panel
      JPanel panel = new JPanel();
      panel.setLayout(new GridLayout(3, 2, 4, 0));
      panel.setBorder(new TitledBorder("RGB Color"));
      panel.add(redLabel);
      panel.add(redField);
      panel.add(greenLabel);
      panel.add(greenField);
      panel.add(blueLabel);
      panel.add(blueField);

      btnColor = new JButton();
      btnColor.setBackground(new Color(redValue, greenValue, blueValue));

      // Meletakkan panel btnColor secara horizontal
      horSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true);
      horSplitPane.setLeftComponent(panel);
      horSplitPane.setRightComponent(btnColor);
      horSplitPane.setOneTouchExpandable(true);

      btnChangeColor = new JButton("Tekan tombol ini untuk menghasilkan warna baru");

      // Meletakkan horSplitPane dan btnChangedColor secara vertikal
      verSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true);
      verSplitPane.setTopComponent(horSplitPane);
      verSplitPane.setBottomComponent(btnChangeColor);
      verSplitPane.setOneTouchExpandable(true);

      getContentPane().add(verSplitPane, BorderLayout.CENTER);

      // Penanganan aksi penekanan tombol
      btnChangeColor.addActionListener(
         new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
 
               // Nilai numerik int acak dengan rentang 0 - 255
               redValue = (int) (Math.random() * 256);
               greenValue = (int) (Math.random() * 256);
               blueValue = (int) (Math.random() * 256);

               btnColor.setBackground(new Color(redValue, greenValue, blueValue));
 
               redField.setText("" + redValue);
               greenField.setText("" + greenValue);
               blueField.setText("" + blueValue);
            }
         }
      );
   }

   // Metoda main
   public static void main(String[] args) {
      DemoSplitPane frame = new DemoSplitPane();
      frame.setTitle("Kelas DemoSplitPane");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(370, 185);
      frame.setVisible(true);
   }
}
Menggunakan kelas JSplitPane di program Java

Baris nomor 19 adalah pernyataan untuk mendeklarasikan data field redValue, greenValue dan blueValue. Default value untuk tipe int adalah 0. Baris nomor 25, 29 dan 33 adalah penyataan untuk mengkonstruksi tiga obyek kelas JTextField. Nilai string awal yang ditampilkan di obyek text field adalah default value dari data field redValue, greenValue dan blueValue.

Karena tipe data dari data field tersebut adalah int, sedangkan obyek-obyek text field hanya menerima tipe String untuk ditampilkan, perlu ada konversi tipe data terlebih dahulu dari tipe int ke String sebelum ditampilkan. Anda dapat menambahkan string kosong untuk mengubah langsung nilai integer ke bentuk string ( "" + redValue).

Baris nomor 38 – 40 adalah penyataan untuk mengkonstruksi tiga obyek kelas JLabel. Obyek label ini ditujukan untuk memberi label atau keterangan pada obyek text field. Baris nomor 43 adalah pernyataan untuk mengkonstruksi obyek kelas JPanel. Panel adalah kelas wadah (container class) untuk menyusun label dan text field. Obyek label dan text field yang sebelumnya dikonstruksi kemudian disusun di obyek panel ini.

Baris nomor 53 adalah pernyataan untuk mengkonstruksi obyek button (btnColor). Button ini digunakan untuk menampilkan warna yang tersusun atas warna merah, hijau dan biru (RGB). Baris nomor 57 adalah pernyataan untuk mengkonstruksi obyek split pane (horSplitPane) dengan orientasi horisontal. Untuk meletakkan panel di wadah sebelah kiri, digunakan metoda setLeftComponent, untuk meletakkan obyek btnColor di sebelah kanan, digunakan metoda setRightComponent (pernyataan baris nomor 59 dan 60).

Baris nomor 62 adalah pernyataan untuk mengkonstruksi obyek button (btnChangeColor). Di hasil tampilan program, obyek button diletakkan di posisi paling bawah dan dapat memicu action event ketika diklik. Di baris nomor 65, obyek split pane dengan orientasi vertikal dikonstruksi. Untuk meletakkan komponen di posisi atas obyek split pane, digunakan metoda setTopComponent, untuk meletakkan komponen di posisi bawah, digunakan metoda setBottomComponent.

Baris nomor 66 dan 67 adalah pernyataan untuk menempatkan obyek split pane (horSplitPane) di posisi atas dan obyek button (btnChangeColor) di posisi bawah. Metoda setOneTouchExpandable dari obyek split pane (baris nomor 60 dan 68) digunakan untuk membuka atau menutup salah satu sisi dan menampilkan secara penuh sisi yang lain dengan hanya mengklik salah satu tanda segitiga kecil yang ditampilkan di baris pembagi obyek split pane.

Blok metoda actionPerformed baris 73 – 89 dieksekusi ketika tombol button di posisi paling bawah diklik. Di blok metoda ini, nilai data field redValue, greenValue dan blueValue dapat berubah sesuai nilai acak hasil metoda random. Nilai baru yang tersimpan di setiap variabel kelas kemudian digunakan untuk mengkonstruksi warna RGB sebagai background dari obyek btnColor (baris nomor 82). Nilai variabel kelas kemudian juga ditampilkan di obyek text field (redField, greenField dan blueField) menggunakan metoda setText.

Karena nilai dari redValue, greenValue dan blueValue bernilai int dan obyek dari kelas JTextField hanya menerima argumen tipe String untuk ditampilkan, maka nilai tipe int perlu dikonversi ke tipe String. Cara konversi paling mudah adalah dengan merangkai string kosong dengan nilai yang tersimpan di setiap variabel kelas tersebut ("" + redValue) sebagaimana pernyataan di baris nomor 84 - 86.

SUKAI DAN BAGIKAN ARTIKEL INI:
Pin It