Menekan “Enter” untuk Objek JButton (Versi Netbeans GUI Builder)

Melanjuti postingan kemaren… Ada yang nanya di dunia nyata ke gw… Hal yang sama bisa dilakuin gak kalo ngebangun gui-nya pake gui builder bawaan IDE tertentu. Hmmm,, kalo mau jawab secara spesifik, gw bakal bilang kalo yang kemaren itu bisa lo adaptasi kalo ngegunain matisse builder bawaan netbeans. Kalo eclipse gimana?! Hmm… gw gak tau. Gw gak make eclipse c. Sorry….. 😦

Jadi, pas di konstruktor (lihat bagian source dari class jframe yang udah dibikin tadi), setelah initcomponents(), tambahin kode berikut:

this.getRootPane().setDefaultButton(nama_tombol);

Yang perlu jadi perhatian, initcomponents() musti dijalanin pertama kali. Musti!! Kalo gak, keluarnya bakal jadi aneh2. Kenapa?! Karena itulah method yang dijalankan untuk membuat semua objek komponen pembentuk gui. Setelah semuanya terbentuk, baru komponen2 itu bisa dimacam2in, termasuk dibikinin default button.

Contoh sederhananya gini. Buat sebuah project baru (kalo gak mau, bikin package baru di project lama juga boleh). Klik kanan di package yang diinginkan, pilih “New” –> “JFrame Form”. Masukkan informasi nama (Class Name) sesuai yang diinginkan.

1. Langkah 1-Nama Class JFrame

Sebuah frame bakal terbentuk. Timpa frame tersebut dengan panel (ini kalo gak mau dilakuin juga gapapa. Cuma kebiasaan gw aja nge-desain gak langsung di objek JFrame, tapi di panel). Lalu desain sesuai yang diinginkan (drag-and-drop komponen di palette sebelah kanan ke frame). Ingat… musti ada tombolnya. Kan kita mau bikin skenario kalo tombolnya bisa ditekan pake “Enter”.

Gw nge-desainnya kayak gini:

2. Desain Frame

Tiap objek JButton gw ubah nama variabelnya jadi “tombolProses” sama “tombolKosong”. Caranya Klik kanan di masing-masing tombol, pilih “Change Variable Name”.

Coba jalanin dulu… Seharusnya keluar gini:

3. Hasil

Tombolnya belum bisa ditekan sama sekali pake “Enter”. Kalo mau nambahin judul dari frame (kayak yang ada di pojok kiri atas yang tulisannya “Formulir Sederhana”, tinggal tambahin di properties jframe-nya). GUI udah jadi, sekarang kita bikin supaya tombol bisa ditekan pake “Enter”. Caranyaa… Tekan pilihan “source” yang ada di pojok kiri atas sebelah pilihan “design”.

4. Source

Cari konstruktor, dan sesuai yang gw bilang sebelumnya, tambahin setDefaultButton setelah pemanggilan initcomponents(). Kalo di gw jadinya gini:

    public FrameDefaultButton() {
        initComponents();
        this.getRootPane().setDefaultButton(tombolProses);
        this.setLocationRelativeTo(null);
    }

Gak ada yang aneh kan?! Kalo baris ke tiga (this.setLocationRelativeTo(null)) itu maksudnya buat ngatur posisi frame kalo dijalanin. Jadi munculnya bakal di tengah2. Gak muncul di piksel (0,0) dari screen.
Dan pas dijalanin jadinya gini:

5. Hasil 2

Coba ajah tekan “Enter”, pasti tombol “Proses” kayak ditekan gitu. Kalo lo mau ganti tombol, maunya si tombol “Kosongkan” yang bisa ditekan pake “Enter”, tinggal ganti baris berikut:

this.getRootPane().setDefaultButton(tombolProses);

Jadi gini:

this.getRootPane().setDefaultButton(tombolKosong);

Intinya, sesuaiin aja parameternya ama nama tombol yang pengen dijadiin default (tombol yang pengen bisa dieksekusi pake nekan “Enter”).

Tapi lo protes… ini belum ada kejadian apa2 kalo ditekan “Enter” jugak… Yaaa… gak masalah c, tinggal ditambahin aja listener di tombol itu. Klik kanan di salah satu tombol, pilih Events –> Action –> actionPerformed(). Terus muncul kode2. Kalo lo ngerasa langkah2 itu ribet, klik 2x di masing-masing tombol bakal ngehasilin hal yang sama ajah.

Dan… di actionPerformed itu lah aksi/logika yang pengen lo lakuin buat penekanan tombol bisa dituliskan. Gw nulisnya jadi gini buat si tombolProses:

    private void tombolProsesActionPerformed(java.awt.event.ActionEvent evt) {
        String nama = jTextField1.getText();
        String persh = jTextField2.getText();
        System.out.println("Nama: "+nama);
        System.out.println("Perusahaan: "+persh);
    }

Kalo yang tombolKosongkan jadinya:

    private void tombolKosongActionPerformed(java.awt.event.ActionEvent evt) {
        jTextField1.setText("");
        jTextField2.setText("");
    }

Jadi kalo dijalanin gini:

6. Hasil Fix

Dan abis tekan “Enter”, bakal keluar:

7. Output

Kalo pas nge-klik “Kosongkan”, field nama sama perusahaan jadi kosong lagi. Begitulaaahhh~~
Gampang kan?! Pasti dunk. Tip ama trik dari gw musti gampang. Kalo gak, gak bakal gw publish. Hihihihi :p

Sekiaaannn~~

Sumber: Pribadi
Valid: Yap!
Masa kadaluarsa: Samaan ama postingan sebelumnya

Advertisements

3 thoughts on “Menekan “Enter” untuk Objek JButton (Versi Netbeans GUI Builder)

  1. kalau mau ganti defaultbutton nya saat programnya sedang run gimana? misalkan defaultbutton awalnya button1, saat digeser fokusnya menggunakan tab, defaultbutton terganti menjadi button2

  2. mau tanya gan cara buat menghubungkan/memanggil project(program) java lain dari project(program) utama gimana ya?
    misal saya buka project(program) A lalu saya ingin memanggil project(program) B dengan menekan butoon

    • Hai Reka…

      Agak bingung sama maksud pertanyaannya. Project yang dimaksud itu beneran project dari editor atau cuma class aja? Kalo project… ada jawaban panjang buat ini, jadi gw skip. Kalo yang kamu maksud itu class kayak di atas (yang nge-extends jframe dan sejenisnya), untuk ngehubunginnya bisa dibentuk objek dari class lain.

      Jadi pas action performed, bikin objek baru dari class lain. Contohnya ada tombol jbutton1 di frame Kelas1, mau aktifin frame Kelas2 bikinnya kira2 gini:

      public class Kelas1 extends javax.swing.JFrame {   
         //kode lainnya
         private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){                                         
             Kelas2 k2 = new Kelas2();
      	   k2.setVisible(true);     
         }
         //kode lainnya
      }
      

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s