- Buat project baru dengan menggunakan editor NetBeans. Pada Categories pilih Java, dan pada Projects pilih Java Application. Kemudian klik tombol Next.
- Pada Window berikutnya, isi nama project pada Project
Name. Dalam tutorial ini, nama projectnya adalah
JavaApplication1. Hilangkan tanda centang pada opsi “Create
Main Class”.
- Setelah project terbentuk, klik kanan pada Source Packages
dan pilih New kemudian pilih Java Package. Pada contoh
ini, nama package diisi dengan “mdiform”.
- Klik kanan pada package mdiform yang baru kita buat,
kemudian pilih New dan pilih JFrame Form.
Berikan nama FrameUtama sebagai nama kelas.
- Kemudian pada tab Pallete
di sebelah kanan drag objek Desktop Pane ke dalam frame yang baru
kita buat.
- Lakukan hal yang sama terhadap objek Menu Bar pada Pallete. Drag ke dalam frame yang kita buat sebelumnya.
- Atur tata letak Desktop
Pane dan Menu Bar
sehingga tampilan FrameUtama
kita menjadi seperti berikut:
- Kemudian klik kanan pada
File yang ada pada
Menu Bar. Pilih Add
From Pallete dan pilih Menu
Item.
- Lakukan sekali lagi
penambahan Menu Item
pada menu bar File.
Jadi, saat ini kita memiliki 2 sub menu dari File.
- 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.
- 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.
- Pada dialog box yang
muncul, pada bagian Categories
pilih Swing GUI Forms,
dan pada File Types
pilih JinternalFrame Form.
Kemudian klik tombol Next.
- 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:
- Klik sekali InternalFrame1.
Kemudian berikan title “Ini Form 1”
untuk InternalFrame ini yang ada pada tab Properties.
- Dengan cara yang sama ubah
title pada InternalFrame2
menjadi “Ini Form 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.
Mantabbb sangat membantu utk pemula like me..
ReplyDelete