Skip to main content

MDI Form pada Java Swing dengan editor Netbeans

  1. Buat project baru dengan menggunakan editor NetBeans. Pada Categories pilih Java, dan pada Projects pilih Java Application. Kemudian klik tombol Next.

  1. Pada Window berikutnya, isi nama project pada Project Name. Dalam tutorial ini, nama projectnya adalah JavaApplication1. Hilangkan tanda centang pada opsi “Create Main Class”.


  1. Setelah project terbentuk, klik kanan pada Source Packages dan pilih New kemudian pilih Java Package. Pada contoh ini, nama package diisi dengan “mdiform”.


  1. Klik kanan pada package mdiform yang baru kita buat, kemudian pilih New dan pilih JFrame Form. Berikan nama FrameUtama sebagai nama kelas.

  1. Kemudian pada tab Pallete di sebelah kanan drag objek Desktop Pane ke dalam frame yang baru kita buat.

  1. Lakukan hal yang sama terhadap objek Menu Bar pada Pallete. Drag ke dalam frame yang kita buat sebelumnya. 

  1. Atur tata letak Desktop Pane dan Menu Bar sehingga tampilan FrameUtama kita menjadi seperti berikut:

  1. Kemudian klik kanan pada File yang ada pada Menu Bar. Pilih Add From Pallete dan pilih Menu Item.



  1. Lakukan sekali lagi penambahan Menu Item pada menu bar File. Jadi, saat ini kita memiliki 2 sub menu dari File.
  2. Klik kanan pada Menu Item yang baru kita buat dan pilih Edit Text untuk mengganti teks yang muncul. Berikan nama Form 1 dan Form 2 pada kedua Menu Item seperti pada gambar berikut.

  1. Langkah berikutnya yaitu membuat Form yang dapat di panggil setelah Menu Item di klik. Objek yang kita butuhkan ialah objek JInternalForm. Untuk memasukan objek ini, klik kanan pada package “mdiform” kemudian pilih New kemudian pilih Other.


  1. Pada dialog box yang muncul, pada bagian Categories pilih Swing GUI Forms, dan pada File Types pilih JinternalFrame Form. Kemudian klik tombol Next.


  1. Berikan nama kelas InternalFrame1 pada ClassName. Lakukan cara yang sama untuk memasukan objek JinternalFrame yang kedua. Berikan nama InternalFrame2 untuk objek JinternalFrame kedua ini. Setelah ini, struktur project menjadi seperti gambar berikut:


  1. Klik sekali InternalFrame1. Kemudian berikan title “Ini Form 1” untuk InternalFrame ini yang ada pada tab Properties.


  1. Dengan cara yang sama ubah title pada InternalFrame2 menjadi “Ini Form 2”.
  2. Kembali ke FrameUtama,  klik menu File pada Menu Bar, dan Double klik pada “Form 1”.

17. Setelah Double klik, anda akan diarahkan ke jendela coding. Ketikan script berikut:


 private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                        
     // TODO add your handling code here:  
     try{  
       boolean status=false;  
       javax.swing.JInternalFrame[] children;  
       children=jDesktopPane1.getAllFrames();  
       for (JInternalFrame f:children){  
         if(f.getTitle().equals("Ini Form 1")){  
           f.setSelected(true);  
           status=true;  
           break;  
         }  
       }  
       if (status==false){  
         InternalFrame1 form1=new InternalFrame1();  
         jDesktopPane1.add(form1);  
         form1.setVisible(true);  
       }  
     }  
     catch(PropertyVetoException e){  
       JOptionPane.showMessageDialog(null, e.getMessage(), "Error",  
           JOptionPane.ERROR_MESSAGE);  
     }  
   }  

Setelah mengetikan script diatas, coba jalankan aplikasi ini dan coba klik menu File kemudian Form 1. Jika benar, internal form dengan title "Ini Form 1" akan terbuka.
Dengan contoh script di atas, coba anda ubah agar dapat menampilkan internal frame dengan nama "Ini Form 2".

Penjelasan singkat script:

 boolean status=false;  
       javax.swing.JInternalFrame[] children;  
       children=jDesktopPane1.getAllFrames();  

script diatas untuk mengambil semua objek JInternalFrame yang ada di dalam objek Desktop Pane.


 for (JInternalFrame f:children){  
         if(f.getTitle().equals("Ini Form 1")){  
           f.setSelected(true);  
           status=true;  
           break;  
         }  
       }  
script looping diatas berfungsi mencari apakah form dengan title "Ini Form 1" sudah terbuka atau tidak. Jika Form dengan nama tersebut sudah terbuka, tampilkan objek tersebut (f.setSelected digunakan untuk menampilkan objek yang sudah pernah dibuka) dan berikan nilai status menjadi TRUE.

Mengapa digunakan script seperti diatas? Fungsinya untuk menghindari objek yang terbuka 2 kali. Perhatikan baris berikutnya seperti di bawah ini:

 if (status==false){  
         InternalFrame1 form1=new InternalFrame1();  
         jDesktopPane1.add(form1);  
         form1.setVisible(true);  
       }  

jika blok looping menghasilkan nilai status yang tetap FALSE, artinya objek tersebut belum terdapat di dalam Desktop Pane. Oleh sebab itu, buat objek baru dengan perintah new InternalFrame1() dan masukan objek tersebut ke dalam Desktop Pane. Setelah itu tampilkan dengan perintah setVisible.


Comments

Post a Comment

Popular posts from this blog

Mengembalikan user 'root' yang terhapus pada mysql (ubuntu server)

untuk mengembalikan user root yang tidak sengaja terhapus, berikut langkah2 nya: stop service mysql terlebih dahulu dengan perintah berikut: sudo /etc/init.d/mysql stop kemudian jalankan kembali service mysql dengan perintah berikut: sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking & masuk ke service mysql dengan cara : mysql -u root kemudian jalankan perintah berikut: FLUSH PRIVILEGES; kemudian jalankan perintah berikut untuk menambahkan user root yang baru: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; terakhir, lakukan reboot server anda.

ORM vs Native SQL

ORM (Object relational mapping) merupakan sebuah metode atau framework dimana setiap tabel pada database akan dipetakan menjadi kelas-kelas. Terdapat berbagai produk ORM yang populer seperti Hibernate, JPA, TopLink dan lainnya. Mengapa menggunakan ORM? Apa kita harus menggunakan ORM? Apakah lebih baik dibandingkan menggunakan Native SQL? Kelebihan menggunakan ORM: Coding lebih mudah dibaca dan dimaintain, karena ORM menerapkan gaya penulisan OOP. Dapat menyesuaikan format jam dan tanggal sesuai kebutuhan database. Kita tahu bahwa format jam dan tanggal di MySQL tentu berbeda dengan MSSQL atau Oracle. Dengan menggunakan ORM, mempermudah kita melakukan migrasi database. Dalam beberapa kasus, ORM memproses query lebih cepat dibandingkan native SQL karena ORM memiliki caching tersendiri. Dan lainnya.. :) Kekurangan ORM: ORM membutuhkan memori yang besar. Karena setiap pemetaan akan diwakilkan oleh sebuah Objek. Secara umum, performance ORM sebenarnya lebih lambat dibandingkan ...