Hallo. Jumpa lagi dengan saya yang cakep dan baik hati. Artikel kali tampak lebih berat (karena harus memahami bagaimana class-class Java bekerja) dan merupakan langkah pertama dalam membuat aplikasi database (langkah kedua tentu saja operasi database). Marilah kita mulai dengan menyisir satu persatu tiap langkah pemrograman agar tidak tampak berat.
Pada artikel terdahulu, membuat Form dilakukan dengan menurunkan class JFrame. Tetapi pada form MDI, kita memakai class JDesktopPane dan JInternal Frame.
JDesktopPane akan digunakan sebagai Form MDI, sedangkan JInternalFrame akan digunakan untuk MDI Child.
Pada artikel ini, kita akan membuat satu Form MDI dan 2 form MDI Child (Daftar Barang dan Daftar Pelanggan). Dasar-dasar pembuatan Form dengan dekorasi sudah saya singgung di artikel Mendekorasi Title Bar Window pada Java. Kode program di artikel ini merupakan modifikasi dari artikel tadi.
Membuat MDI Child
Buatlah Form Daftar Pelanggan dan Daftar Barang dengan kode seperti dibawah ini:
Secara garis besar, cara pembuatan MDI Child sama dengan Form pada umumnya. Perbedaannya hanya terletak pada dua hal: Tidak adanya method main() dan memakai class JInternalFrame sebagai ganti class JFrame. Method main() dihilangkan, karena class tidak dieksekusi secara mandiri melainkan dipanggil dari class lain.
Membuat MDI Form
Pembuatan MDI Form pun juga tidak jauh berbeda dari pembuatan Form pada umumnya. Perbedaannya adalah:
- Mengganti container dengan JDesktopPane.
- Menggeser Form MDI Child tidak lagi menggunakan setRelativeTo(null) tetapi dengan setLocation dengan isi variabelnya didapat dari class Dimension (dari paket java.awt.Dimension)
Dimension desktopSize = theDesktop.getSize();
Dimension jInternalFrameSize = frame.getSize();
frame.setLocation(
(desktopSize.width - jInternalFrameSize.width)/2,
(desktopSize.height- jInternalFrameSize.height)/2
);
frame adalah variabel instan dari Form MDI Child, sehingga pada artikel ini bisa variabel dari Form Daftar Pelanggan atau Daftar Barang
Langkah-langkah pembuatan:
- Buat class yang diturunkan (inherited) dari JFrame dan mempunyai interface ke ActionListener
class FormUtama extends JFrame implements ActionListener {
}
- Deklarasikan class JDesktopPane dengan
import javax.swing.JDesktopPane; - Tambahkan deklarasi class JMenuBar
JMenuBar adalah obyek yang mengatur tempat menu paling atas
import javax.swing.JMenuBar; - Tambahkan deklarasi class JMenu
JMenu adalah detil menu. Sebagai contoh jika kita menginginkan menu Arsip yang mempunyai anggota Daftar Barang dan Daftar Pelanggan, maka tempatkan menu Arsip pada JMenuBar dan kedua menu terakhir pada JMenu
import javax.swing.JMenu; - Menambahkan menu JMenuBar dan JMenu pada JDesktop
JMenu menu = new JMenu("Arsip");
Tambahkan fasilitas shortcut menu. Contoh Shortcut menu dibawah ini adalah pada huruf A pada kata Arsip, sehingga huruf A akan bergaris bawah sebagai penanda shortcut
menu.setMnemonic(KeyEvent.VK_A);
Menu Daftar Pelanggan dan Daftar Barang di-instankan dari class JMenu
JMenuItem menuItem = new JMenuItem("Daftar Pelanggan");
JMenuItem menuItem = new JMenuItem("Daftar Barang");
Menu-menu ini nantinya akan menerima aksi dari pengguna. Aksi inilah yang mengharuskan kita membuat interface ke ActionListener.
menuDaftarBarang.addActionListener(this);
Hasil tangkapan aksi ini lantas dieksekusi pada method
public void actionPerformed(ActionEvent e) {
if ("Daftar Pelanggan".equals(e.getActionCommand())) { //new
createDaftarPelanggan();
}
else
if ("Daftar Barang".equals(e.getActionCommand())) {
createDaftarBrg();
}
else { //quit
quit();
}
}
dan dikerjakan di masing-masing method menu-nya (createDaftarPelanggan() dan createDaftarBrg())
Perlu diingat, class DaftarPelanggan dan DaftarBrg harus dalam satu folder dengan FormUtama.class. Jika tidak anda harus menggunakan sintak import. Contoh: jika anda meletakkan dalam folder DaftarClass dan folder itu dibawah folder FormUtama, sehingga anda membuat deklarasi seperti ini:
import DaftarBrg;
0 komentar:
Posting Komentar