Langsung ke konten utama

Belajar Java Swing: Cara Menggunakan JOptionPane untuk Membuat Dialog

Belajar Java Swing: Cara Menggunakan JOptionPane untuk Membuat Dialog


 
Belajar Pemrograman GUI dengan Java Swing
Agar program yang kita mempu berinteraksi dengan pengguna, kita harus membuat sebuah dialog dengannya.
Pada Java Swing, terdapat sebuah komponen bernama JOptionPane untuk membuat dialog yang interakif.
Bagaimana cara menggunakan JOptionPane?
Mari kita simak pembahsannya…

Mengenal JOptionPane

JOptionPane merupakan sebuah kelas yang menyediakan jendela dialog.
JOptionPane bisa kita gunakan untuk mengambil input, menampilkan informasi, menampilkan pesan error, menampilkan dialog konfirmasi, dan lain-lain.
Sebelum menggunakan JOptionPane, kita harus mengimpornya terlebih dahulu ke dalam program:
import javax.swing.JOptionPane;
Terdapat empat fungsi atau metode yang sering digunakan pada JOptionPane:
  1. showConfirmDialog() : untuk menampilkan dialog konfirmasi;
  2. showInputDialog() : untuk menampilkan dialog input;
  3. showMessageDialog() : untuk menampilkan pesan/informasi;
  4. showOptionDialog() : untuk menampilkan dialog pilihan.
Class JOptionPane dapat digunakan langsung tanpa harus membuat objek seperti ini:
JOptionPane.showMessageDialog(null, "Hello!");
Keterangan:
  • null adalah parameter untuk komponen induknya, bisa diberikan null atau this.
  • "Hello!" adalah teks yang ingin kita tampilkan di dalam dialog.
Untuk lebih jelasnya, mari kita coba dalam program.

Contoh Program dengan JOptionPane

Silahkan buat sebuah jendela JFrame baru, kemudian buatlah desainnya seperti ini:
Desain Form JFrame
Berikan variabel name untuk setiap tombolnya sebagai berikut:
  • Message DialogbtnMsgDialog
  • Input DialogbtnInputDialog
  • Dialog KonfirmasibtnConfirmDialog
  • Dialog PilihanbtnOptionDialog
Setelah itu isi kode untuk masing-masing tombol sebagai berikut.
Message DialogbtnMsgDialog
private void btnMsgDialogActionPerformed(java.awt.event.ActionEvent evt) {                              
    JOptionPane.showMessageDialog(this, "Ini Adalah Dialog Informasi");        
} 
Input DialogbtnInputDialog
private void btnInputDialogActionPerformed(java.awt.event.ActionEvent evt) {                                               
    String inputan = JOptionPane.showInputDialog("Inputkan Sesuatu");
    JOptionPane.showMessageDialog(this, "Kamu meng-inputkan: " + inputan);
        
} 
Dialog KonfirmasibtnConfirmDialog
private void btnConfirmDialogActionPerformed(java.awt.event.ActionEvent evt) {                                                       
    int jawab = JOptionPane.showConfirmDialog(this, "Silahkan Konfirmasi?");
    
    // 0 : yes
    // 1 : no
    // 2 : cancel
    
    switch(jawab){
        case JOptionPane.YES_OPTION: 
            JOptionPane.showMessageDialog(this, "Kamu menjawab ya");
            break;
        case JOptionPane.NO_OPTION:
            JOptionPane.showMessageDialog(this, "Kamu menjawab tidak");
            break;
        case JOptionPane.CANCEL_OPTION:
            JOptionPane.showMessageDialog(this, "Kamu mejawab batal");
    }
}
Dialog PilihanbtnOptionDialog
private void btnOptionDialogActionPerformed(java.awt.event.ActionEvent evt) {

    int jawab = JOptionPane.showOptionDialog(this, 
                    "Ingin Keluar?", 
                    "Keluar", 
                    JOptionPane.YES_NO_OPTION, 
                    JOptionPane.QUESTION_MESSAGE, null, null, null);
    
    if(jawab == JOptionPane.YES_OPTION){
        JOptionPane.showMessageDialog(this, "Program Akan Keluar");
        System.exit(0);
    }
        
} 
Sehingga kode lengkapnya akan seperti ini:
*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package dialog;

import javax.swing.JDesktopPane;
import javax.swing.JOptionPane;

/**
 *
 * @author petanikode
 */
public class Berdialog extends javax.swing.JFrame {

    /**
     * Creates new form Berdialog
     */
    public Berdialog() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        btnMsgDialog = new javax.swing.JButton();
        btnInputDialog = new javax.swing.JButton();
        btnConfirmDialog = new javax.swing.JButton();
        btnOptionDialog = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        btnMsgDialog.setText("Message Dialog");
        btnMsgDialog.setName("btnMsgDialog"); // NOI18N
        btnMsgDialog.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnMsgDialogActionPerformed(evt);
            }
        });

        btnInputDialog.setText("Input Dialog");
        btnInputDialog.setName("btnInputDialog"); // NOI18N
        btnInputDialog.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnInputDialogActionPerformed(evt);
            }
        });

        btnConfirmDialog.setText("Dialog Konfirmasi");
        btnConfirmDialog.setName("btnConfirmDialog"); // NOI18N
        btnConfirmDialog.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnConfirmDialogActionPerformed(evt);
            }
        });

        btnOptionDialog.setText("Dialog Pilihan");
        btnOptionDialog.setName("btnOptionsDialog"); // NOI18N
        btnOptionDialog.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnOptionDialogActionPerformed(evt);
            }
        });

        jLabel1.setText("Belajar JOptionPane");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(60, 60, 60)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnConfirmDialog)
                    .addComponent(btnMsgDialog))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 57, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnInputDialog)
                    .addComponent(btnOptionDialog))
                .addGap(62, 62, 62))
            .addGroup(layout.createSequentialGroup()
                .addGap(129, 129, 129)
                .addComponent(jLabel1)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 53, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnMsgDialog)
                    .addComponent(btnInputDialog))
                .addGap(74, 74, 74)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnConfirmDialog)
                    .addComponent(btnOptionDialog))
                .addGap(63, 63, 63))
        );

        pack();
    }// </editor-fold>                        

    private void btnMsgDialogActionPerformed(java.awt.event.ActionEvent evt) {                                             
        
        JOptionPane.showMessageDialog(this, "Ini Adalah Dialog Informasi");
        
    }                                            

    private void btnInputDialogActionPerformed(java.awt.event.ActionEvent evt) {                                               
        
        String inputan = JOptionPane.showInputDialog("Inputkan Sesuatu");
        JOptionPane.showMessageDialog(this, "Kamu meng-inputkan: " + inputan);
        
    }                                              

    private void btnConfirmDialogActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        
        int jawab = JOptionPane.showConfirmDialog(this, "Silahkan Konfirmasi?");
        
        // 0 : yes
        // 1 : no
        // 2 : cancel
        
        switch(jawab){
            case JOptionPane.YES_OPTION: 
                JOptionPane.showMessageDialog(this, "Kamu menjawab ya");
                break;
            case JOptionPane.NO_OPTION:
                JOptionPane.showMessageDialog(this, "Kamu menjawab tidak");
                break;
            case JOptionPane.CANCEL_OPTION:
                JOptionPane.showMessageDialog(this, "Kamu mejawab batal");
        }
    }                                                

    private void btnOptionDialogActionPerformed(java.awt.event.ActionEvent evt) {                                                
        
        int jawab = JOptionPane.showOptionDialog(this, 
                        "Ingin Keluar?", 
                        "Keluar", 
                        JOptionPane.YES_NO_OPTION, 
                        JOptionPane.QUESTION_MESSAGE, null, null, null);
        
        if(jawab == JOptionPane.YES_OPTION){
            JOptionPane.showMessageDialog(this, "Program Akan Keluar");
            System.exit(0);
        }
        
    }                                               

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Berdialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Berdialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Berdialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Berdialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Berdialog().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton btnConfirmDialog;
    private javax.swing.JButton btnInputDialog;
    private javax.swing.JButton btnMsgDialog;
    private javax.swing.JButton btnOptionDialog;
    private javax.swing.JLabel jLabel1;
    // End of variables declaration                   
}
Setelah itu, silahkan jalankan programnya dan perhatikanlah hasilnya.
Program JOption Pane
Untuk showConfirmDialog() dan showOptionDialgo() hasilnya sama-sama dalam bentuk dialgo konfirmasi yang berisi tombol “Yes”, “No”, dan “Cancel”.
Masing-masing tombol, apabila ditekan akan menghasilkan nilai berupa integer.
  • “Yes” akan menghasilkan 0;
  • “No” akan menghasilkan 1;
  • “Cancel” akan menghasilkan 2.
Untuk mempermudah pemrosesan, JOptionPane sudah menyediakan konstanta:
  • JOptionPane.YES_OPTION yang bernilai 0;
  • JOptionPane.NO_OPTION yang bernilai 1;
  • JOptionPane.CANCEL_OPTION yang bernilai 2.
Sehingga kita dapat menggunakannya dalam blok Switch/Case seperti ini:
switch(jawab){
    case JOptionPane.YES_OPTION: 
        JOptionPane.showMessageDialog(this, "Kamu menjawab ya");
        break;
    case JOptionPane.NO_OPTION:
        JOptionPane.showMessageDialog(this, "Kamu menjawab tidak");
        break;
    case JOptionPane.CANCEL_OPTION:
        JOptionPane.showMessageDialog(this, "Kamu mejawab batal");
}

Akhir Kata…

Itulah contoh penggunaan JOptionPane dalam program Java.
Sebenarnya masih banyak yang belum kita coba, seperti mengganti ikon, mengubah teks di tombol, mengganti judul, dll.
Silahkan eksperimen sendiri.
Kalau ada yang ditanyakan, masi sampaikan melalui komentar.

Komentar

Postingan populer dari blog ini

PROSEDUR PEMBUATAN INDIKATOR

PROSEDUR PEMBUATAN INDIKATOR 1. EBT (ERIOCROM BLACK T) Timbang 100 mg serbuk zat warna EBT ,10 gram Kristal NaCl atau Kristal Na2SO4 an hidrat. Kedua zat tersebut dicampur dengan cara menggerus didalam mortar sampai halus dan merata. Penggunaannya 100 mg (seujung spatel ) untuk satu kali titrasi. 2. Merah metil Larutkan 25 mg metil P dengan 0,95 ml larutan Natrium hidroksida 0,05 N dan 5 ml etanol 95 % setelah larut sempurna, tambahkan etanol 50 % secukupnya hingga 250,0 ml 3. Jingga metil Larutkan jingga metil P 0,04 % b/v dalam etanol 20 % 4. BTB Larutkan 100 mg biru brom timol P dengan 3,2 ml Natrium Hidroksida 0,05 N dan 5 ml etanol 90 % ,setelah larut sempurna tambahkan etanol 20 % secukupnya hingga 250,0 ml. 5. MUREXIDE Haluskan 100 mg serbuk murexide dengan 10 gram KNO3 atau 10 gram NaCl . Pada pemakaiannya 100 gram serbuk murexide tiap volume 150 sampai 200 ml. 6. Larutan indicator Fenolftalein 0,035 %. Timbang ± 0,035 gram Fenolftalein ,lar

LARUTAN PADA KIMIA ANALITIK KUANTITATIF

LARUTAN PADA KIMIA ANALITIK KUANTITATIF 1.        LARUTAN NaOH 0,1  N                 4 gram NaOH dalam 1 Liter 2.        LARUTAN HCl 0,1 N HCl pekat = 37% HCl pekat = 12 M = 12 N                 8,33 mL HCl pekat = 1 Liter 0,1 N 3.        LARUTAN H 2 SO 4 0,1 N H 2 SO 4 pekat = 96 % H 2 SO 4 pekat = 17,63 M = 18 M = 36 N        2,78 mL H 2 SO 4 pekat = 1 liter 0,1 N 4.        LARUTAN CH 3 COOH 0,1 N CH 3 COOH pekat = 99,5 % CH 3 COOH pekat = 17 M = 17 N        5,88 mL CH 3 COOHpekat = 1 liter 0,1 N 5.        LARUTAN Na 2 S 2 O 3 0,1 N             26 gram Na 2 S 2 O 3 dengan 0,2   g Na 2 CO 3 dilarutkan dalam air bebas CO 2 segar sampai volume 1000 ml 6.        LARUTAN KIO 3 0,1 N             3 , 5 g KIO 3 encerkan dengan air hingga 1000 m L 7.        LARUTAN KMnO 4 0,1 N      3,3 gram Kalium Permanganat P adat dilarutkan dalan air hingga 1000 ml 8.        LARUTAN IODIUM (I 2 ) 0,1 N 12,69 gram I 2 P adat ke dalam la

Membuat Air Mawar

  Membuat Air Mawar   1.      Metoda Merebus Bahan: - 2 hingga 3 cangkir kelopak mawar segar yang sudah bersih - Panci ukuran besar - Botol semprot - 2 liter  air  Langkah-langkah: 1. Masukkan kelopak mawar bersih ke dalam panci dan tuangkan air suling ke dalamnya. 2. Letakkan panci di atas kompor dengan api kecil. 3. Masak selama 30 menit hingga mendidih dan kelopak bunga berubah warna. 4. Setelah itu diamkan hingga dingin dan masukan ke dalam botol semprot. Kalau ingin mendapatkan sensasi segar, Anda bisa taruh botol air mawar ke dalam kulkas sebelum digunakan. 2. Metode penghancuran Bahan: - 7-8 kelopak mawar segar atau kering dan sudah dibersihkan - Air suling - Mangkuk - Saringan - Lesung dan alu - Botol kaca Langkah-langkah: 1. Haluskan kelopak bunga menggunakan lesung dan alu. Kemudian masukan kedalam mangkuk yang berisi air sulingan secukupnya dan biarkan selama 2-3 jam. 2. Tuang campuran air dan kelopak itu ke dalam panci dan ma