author Ahmad Muhardian

Pemrograman Java Swing: Membuat Jendela dengan JFrame


Belajar Java Swing

Jendela merupakan komponen utama sebuah aplikasi GUI.

Di dalam jendela kita memasukan berbagai macam komponen seperti tombol, teks, combobox, dan lain-lain.

Jendela pada pemrograman Swing dapat kita buat dengan Class JFrame.

Pada kesempatan ini, kita akan belajar cara membuat jendela dengan dua metode:

  1. Hard Coding
  2. Drag and drop

Mari kita mulai…

Membuat Proyek Baru

Sebelum kita mulai mulai membuat jendela, buatlah proyek baru pada Netbeans.

Membuat proyek aplikasi Java

Isi nama proyeknya dengan BelajarSwing dan jangan centang “Create Main Class”.

Memberikan nama proyek Java

Setelah itu, buat sebuah package baru.

Membuat package baru

Isi nama package-nya dengan jendela.

Memberikan nama package

Membuat Jendela JFrame dengan Hard Coding

Hard Coding adalah teknik membuat jendela JFrame dengan menuliskan langsung kode Java untuk membuat Jendela.

Jendela dibuat dengan objek JFrame, lalu disesuaikan atribut-atributnya.

Untuk lebih jelasnya, mari kita praktek langsung…

Buat sebuah class baru di dalam package jendela dengan nama FirstWindow.java, setelah itu buat kodenya seperti ini:

import javax.swing.JFrame;

public class FirstWindow {
    
    public static void main(String[] args) {
        
        // membuat objek jendela
        JFrame myWindow = new JFrame();
        
        // berikan judul pada jendela
        myWindow.setTitle("Jendela Program");
        
        // tentukan ukuran jendela
        myWindow.setSize(400, 200);
        
        // tampilkan jendela ke layar
        myWindow.setVisible(true);
        
    }
    
}

Setelah itu jalankan programnya dengan menekan Shift+F6 atau klik kanan, lalu pilih Run File.

Hasilnya:

Jendela perama dengan Swing

Apa maksud dari kode di atas?

Baik, saya akan jelaskan.

Perama dimulai dari mengimpor JFrame.

import javax.swing.JFrame;

Karena kita membutuhkan class JFrame, maka kita harus mengimpornya dari package javax.swing.

Selanjutnya kita bisa membuat objek jendela dari class JFrame.

JFrame myWindow = new JFrame();

Setelah itu, kita bisa mengatur properti jendela dengan mengeksekusi method-method yang tersedia dari calss JFrame seperti memberikan judul, mengatur ukuran, mengatur posisi, dsb.

// berikan judul pada jendela
myWindow.setTitle("Jendela Program");

// tentukan ukuran jendela
myWindow.setSize(400, 200);

// tampilkan jendela ke layar
myWindow.setVisible(true);

Sudah paham?

Bagus.

Tapi, bagaimana kalau kita ingin membuat jendela untuk aplikasi yang besar dan kompleks?

Apabila kita menggunakan cara hard coding, kita bisa membuat class turunan dari JFrame.

Seperti ini:

  • Class MainWindow
  • Class TransactionWindow
  • Class DetailWindow
  • dll.

Mari kita coba.

Buatlah sebuah file class java baru bernama MainWindow.java, kemudian isi dengan kode berikut:

import javax.swing.JFrame;

public class MainWindow extends JFrame {

    public MainWindow(){
        this.setTitle("Jendela Utama");
        this.setSize(600,320);
    }
    
    public static void main(String[] args) {
        MainWindow mWindow = new MainWindow();
        mWindow.setVisible(true);
    }
    
}

Karena kita membuat class MainWindow sebagai class turunan dari JFrame, maka kita bisa mengakses langsung properti JFrame dengan kata kunci this dari method constructor.

Selanjutnya untuk membuat objek dari class MainWindow pada method main().

Hasilnya:

Membuat jendela turunan

Berikutnya kita akan belajar membuat Jendela dengan cara drag and drop.

Membuat Jendela dengan Drag and Drop

Teknik ini lebih mudah dari hard coding, karena kita hanya perlu melakukan drag and drop saja.

Silahkan buat JFrame form baru di dalam package jendela.

Membuat JFrame Form baru

Isi namanya dengan AboutWindow.

Memberikan nama JFrame Form

Sekarang tambahkan sebuah label dengan menarik dari Palette ke dalam jendela.

Menambahkan Label JFrame Form

Karena drag & drop, kita bisa mengatur properti jendelanya dengan mudah.

Silahkan atur sesuai selera dan tambahkan beberapa komponen, sehingga menjadi seperti ini.

Desain JFrame Form

Komponen yang ditambahkan:

  • Label
  • TextArea

Sekarang coba run dan perhatikan hasilnya:

Eksekusi aplikasi JFrame

Itu saja?

Ya itu saja, jendela bisa jadi dalam sekejab dengan drag & drop.

Coba kita bongkar source code-nya:

/*
 * 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 jendela;

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

    /**
     * Creates new form AboutWindow
     */
    public AboutWindow() {
        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() {

        jLabel1 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Aplikasi 1.0.0 - Petani Kode");

        jLabel1.setFont(new java.awt.Font("Noto Sans UI", 1, 18)); // NOI18N
        jLabel1.setText("Aplikasi 1.0.0");

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jTextArea1.setText("Aplikasi 1.0.0 adalah aplikasi untuk belajar pemrograman.\nAplikasi ini dibuat oleh Petani Kode untuk Demo.\nTerima kasih sudah menggunakan Aplikasi ini.\nUntuk saran dan kritik, silahkan kirim email ke [email protected]");
        jScrollPane1.setViewportView(jTextArea1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1)
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(175, 175, 175)
                .addComponent(jLabel1)
                .addContainerGap(174, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(29, 29, 29)
                .addComponent(jLabel1)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

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

    /**
     * @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(AboutWindow.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(AboutWindow.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(AboutWindow.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(AboutWindow.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 AboutWindow().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration                   
}

Kodenya hampir sama seperti kode yang kita buat pada teknik hard coding, namun lebih lengkap.

Akhir Kata…

Kita sudah belajar dua cara dalam membuat jendela pada program GUI Java.

Pertama dengan cara hard coding dan yang kedua dengan drag & drop.

Cara yang manakah yang kamu suka?

Saya yakin pasti yang drag & drop, karena lebih mudah, praktis, dan cepat.

Lalu hard coding bagaimana?

Hard coding lebih susah, karena harus mengetik kode sendiri.

Namun bukan berarti tidak ada manfaatnya.

Hard Coding perlu kita coba untuk menambah pemahaman kita lebih dalam tentang pemrograman GUI di Java.

Jadi kedua cara tersebut ‘wajib’ dicoba untuk pemula yang ingin mendalami pemrograman Java Swing.

Akhir kata…

Terima kasih sudah menyimak sampai akhir.

Ada pertanyaan?

Baca Juga ini

Belajar Java Swing: Cara Menggunakan JOptionPane untuk Membuat Dialog

Belajar Java Swing: Cara Menggunakan JOptionPane untuk Membuat Dialog

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 JOptionPaneJOptionPane 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:

Pilihan Alternatif Java dan Symbolic Link yang Buntu

Pilihan Alternatif Java dan Symbolic Link yang Buntu

Ketika saya bermain-main dengan perintah update-alternative untuk menambahakan pilihan alternatif java, malah terjadi error. Hal ini disebabkan karena saya salah memasukkan symbolic link ketika menambahkan pilihan alternatif. Berikut ini perintah salah yang menyebabkan masalah: sudo update-alternative --install /etc/alternatives/java java /opt/jdk1.8.0_77/bin/java Perhatikan teks yang berwarna merah. Teks tersebut merupakan symbolic link yang berlokasi di /etc/alternatives. Symbolic link yang seharusnya dimasukkan adalah /usr/bin/java. Akibatnya, error: [email protected]:~$ sudo update-alternatives --config java update-alternatives: error: cannot stat file '/etc/alternatives/java': Too many levels of symbolic links Tidak dapat memilih alternatif java, karena symbolic link java yang berada di /etc/alternatives buntu (broken).

Cara Menggunakan Banyak JDK di Linux agar tidak Bentrok

Cara Menggunakan Banyak JDK di Linux agar tidak Bentrok

Saya menginstal lebih dari satu JDK di Linux (Xubuntu). Ada Open JDK 8, Open JDK 7, dan Oracle JDK 8. Awalnya saya hanya punya Open JDK 8. Kemudian setelah mengintal Gradle, Open JDK 7 juga ikut tersintal. Selain itu, saya juga menginstal Oracle JDK 8 Secara manual di direktori /opt. Saat ini JDK yang sedang aktif digunakan adalah Open JDK 7. Beberapa IDE tidak mendukung bila menggunakan Open JDK 7.

Apa Fungsi String[] args pada Pemrograman Java?

Apa Fungsi String[] args pada Pemrograman Java?

Saat awal belajar pemrograman Java, kita akan menemukan String[] args. Apa sih fungsinya? Kenapa kita harus menuliskannya?

Belajar Java: Memahami 2 Jenis Perulangan dalam Java

Belajar Java: Memahami 2 Jenis Perulangan dalam Java

Apa yang akan kita lakukan bila ingin menyuruh komputer mengerjakan perintah yang berulang-ulang? Misalkan kita ingin menyuruh komputer menampilkan teks Petani Kode sebanyak 5x. Maka kita bisa menyuruhnya seperti ini: System.out.println("Petani Kode"); System.out.println("Petani Kode"); System.out.println("Petani Kode"); System.out.println("Petani Kode"); System.out.println("Petani Kode"); Tapi… bagaimana kalau sebanyak 1000x, apa kita akan mampu mengetik kode sebanyak itu? Tentunya tidak. Karena itu, kita harus pakai perulangan. Contoh perulangan: for (int hitungan = 0; hitungan <= 1000; hitungan++) { System.

Belajar Java: 6 Jenis Operator yang Harus Dipahami

Belajar Java: 6 Jenis Operator yang Harus Dipahami

Operator dalam pemrograman digunakan untuk melakukan operasi tertentu. Misalkan kita ingin menjumlahkan nilai dari variabel x dan y, maka kita bisa menggunakan operator penjumlahan (+). x + y Ada enam jenis kelompok operator dalam pemrograman Java: Operator Artimatika; Operator Penugasan; Operator Pembanding; Operator Logika; Operator Bitwise; dan Operator Ternary. Bila digambarkan dalam mind map, akan terlihat seperti ini: Ukuran penuh dari mind map ini dapat kamu lihat di: coggle.it Apa saja perbedaan dari semua jenis operator tersebut?